1 20020的特征
在分析各實例之前,先解釋一下實例中使用的ARCNET控制器COM20020的特征。
圖1 COM20020的內部模塊圖
圖2 插腳位置圖
圖3 與Z80系列CPU連接的實例
? 20020 簡介
COM20020使用了ARCNET協議設計(改良型令牌(token)信號誘導方式),以工業用機器人及汽車用機器的微控制器與高性能外圍設備相連接為目的,由一個通信用芯片所集成的LAN 控制器。
COM20020 在24pin(插腳)DIP(或者28pin的PLCC)中,由適應性很高的處理界面和媒體傳送界面以及8頁信息量的緩存器組成,在工業環境中的工作溫度范圍為-40℃~+85℃。
它同時還支持2K×8 bit 的雙接口RAM,傳送速度為150Kbps~10 Mbps,并具有自我診斷功能。
圖4 ARCNET的通信模式
圖5 信息包緩存器的動作
ARCNET進行數據接收和傳送的過程如圖4所示:
(1) 發送信息的CPU,把送信包(送信目的地的站號、送信數據)的內容寫入COM20020內部RAM中;
(2) 發出送信命令;
(3) COM20020等待令牌信號的返回;
(4) 收到令牌信號后,送信目的站為了確認信息包是否處于待收狀態,向空著的緩存器發出詢問信號(FBE);
(5) 信息包如果處于待收狀態,送信目的站就回應確認信號(ACK);
(6) 送信源收到確認信號后,送出信息包;
(7) 送信目的站如正常收到信息包,便向送信源發出確認信號;
(8) 送信源收到確認信號后,將令牌信號傳給下一個站。
? 復數頁量的信息緩存器
COM20020控制器內裝緩存器,可儲存8頁的短信息包(short packet,253 字節),4頁的長信息包(long packet,508 字節)。
ARCNET以信息包為單位收信和送信,CPU不必每收到1個字節的信息就加以處理,而是收到整個信息包后才一起讀入,這便減輕了CPU的負擔(如圖5a所示)。送信處理也是如此,1字節的信息寫入后,并不立刻寫入下一個數據,而是等到需要寫入送信緩存器的所有數據都到齊后,送信命令才發出。送信中允許有優先度較高的處理請求。
此外,收信站通常可以按照用戶決定的數據模式讀出送信源發出的數據,從而減輕信息包的處理負擔。
? 緩存器溢出
即使CPU不讀取緩存器中的數據,多個信息包緩存器中數據充滿時也沒有關系。當緩存器要溢出時,為使緩存器不再受信, CPU在收到FBE時回送拒收信號 (NAK)(如圖5 b所示)。即使CPU無法處理接收到的數據時,數據也不會丟失。
送信源收到有關FBE的NAK回答時,就不再送信,而將令牌信號傳給下一個站。因此,即使某一個站無法通信,整個網絡也不會鎖閉。
? 用令牌信號確保實時性
由于可以計算ARCNET協議中的網絡最長等待時間(向下一個站送出令牌信號或令牌信號回到原站的時間),FA網絡具有所需的實時性。另外,控制器會對節點的加入或脫離進行管理,因此不會增加CPU的負擔。
即使CPU的處理速度不夠快,也可以滿足某些節點之間數據的頻繁傳輸(優先級高的命令優先處理)。這個系統可以說是一個柔性網絡。
2 通訊系統實例
在此,從ARCNET所具有的許多特點中,將幾個應用網絡所具有的實時性、網絡的高自由度、高可靠性、對終端節點CPU的低依賴性、網絡自身的廉價性等特征的應用實例做一簡要介紹。
2.1 FA用機器人的控制
? 機器人控制模式
FA用機器人的協調控制模式如圖6、圖7所示。為了控制這個機器人的各個機械手,以機械手為單位,設立了獨立的控制器。為了使機械手達到目標位置,各控制器對機械手的各個關節發出速度指令。
機械手的控制方法有多種,而本例中速度指令的發出方法采用雅可比的逆行列解法。另外,為了準確、更快地使機械手達到目標位置,必須加快控制周期的計算,同時對PID(Proportional Integral Differential)進行控制。
為了加快控制周期的計算,常常利用DSP(Digital Signal Processor)方式提高計算速度。
? 協調控制
對冗余機器人來說,可用雅可比的模擬逆行列解法來決定關節速度。在這種情況下,機械手的姿勢不一定采用人們所期待的姿勢。即雖然能夠確保機械手的目標位置,但是對機械手的姿勢并無特定期望。因此,通常為了保持所希望的姿勢,用提供評價參數(約束條件)來求解。
以此模型為例,機械手#1將貨物從A運到B,機械手#2將貨物從B運到C是效率最高的方法。由機械手#1從A運到B的貨物,馬上被機械手#2從B運到C。
這時,如果兩個控制器對相互的姿勢及狀況無法把握的話,就無法進行有效的控制。最嚴重的情況是,機械手#1與#2互相干擾,導致機械手的損壞。對此類問題的有效控制,稱之為協調控制。
圖6 FA用機器人的模式
圖7 機器人控制器的結構
? 情報通信(LAN)的條件
為了協調控制,各控制器之間的情報通信是必要的,為此采用了LAN方法。LAN所要求的條件列舉如下:
(1) 一般來說, FA要求的系統都是ROM化的,本系統也不例外。因此,要求軟件簡單,操作量小(以減輕CPU的負擔);
(2) 發生障礙時容易維修。使用者可以把握驅動器周圍的狀況,即可以容易地制作與驅動器關聯的軟件。這一點也關系到可靠性和可維修性(軟件開發簡單);
(3) 就控制性質而言,在電波干擾等環境中,這是一個強有力的LAN系統;
(4) 信息包的接收過程是可預測、可確定的(實時性);
(5) 可容易地增減控制器(網絡的擴展性和柔軟性)。
? LAN的選定
作為滿足上述條件的LAN,本系統采用了ARCNET。系統的計算控制周期為5ms~8ms。在這么長的時間段內控制器的情報通信是完全可行的。各控制器以LAN形式連接。它和以總線(Bus)形式連接相比較,后者是由多個CPU構成,會產生CPU間的數據干擾,而前者則容易避免這個問題,從而減輕編程人員的工作量。
總的來說,ARCNET的驅動器周邊程序碼為2KB,很容易ROM化。對協調控制來說,雖然還存在機器人本身的控制體系問題,但是作為通信手段,ARCNET已經達到目的。
2.2 病房大樓內LAN系統
? 病房大樓內LAN的必要性
近年來,醫院面臨著護士人才不足以及工作時間長等許多問題,希望減輕護士的負擔。
實際上,醫院(病房)有大小不同的房間,為收集病人的情況(血壓、脈搏、體溫、尿量以及根據癥狀而定的診斷情況等),護士們要不斷地巡回檢察。病房大樓設有護士集中的護士室,所有情況都在這里統一管理,必要時向醫生提供,這是醫院的一般做法。另外,病房內的患者緊急求助時,通過按床邊呼叫器通知護士。病房內的呼叫器系統使得很多電線分布于各處。
在此考慮將這些電線利用起來,通過LAN將各個醫療感應器收集來的情報自動送出。如果每個醫療器各自布線,病房就成了布滿電線的怪物了。但如果讓每個機器連到LAN系統,并在病房內多設LAN接口,這就很容易集中管理了。
? 病房大樓LAN的條件
此處介紹的系統是病房大樓內LAN的一個嘗試。為了防止由污物引起的室內感染和對臭氣的及時處理,以及減輕護士的負擔等,美國科動控制系統公司開發了如圖8所示的LAN所對應的檢尿裝置及測定值自動送信系統。
圖8 檢尿裝置及測定值自動送信系統
在設計此系統時,首要的考慮是針對醫院內電子儀器所產生的各種電波干擾采取對策,如CT或X光機發出的電波干擾。別說其他電子儀器,就是對LAN本身網線電波干擾的對策也很重要。因此,在采用LAN時,請注意以下幾點:
(1) 利用插入接口,容易與LAN結合;
(2) 接口部設計緊湊、輕巧,易于制作;
(3) 對電波干擾的抵抗力強;
(4) 在軟件方面設計簡單;
(5) 增加接口時簡單容易。
? 病房LAN的選定
根據以上各種理由,在此采用了ARCNET(2.5Mbps)。現在,同一條線上連接了64臺設備,這對數據的收集時間來說,沒有任何問題。
如果其他的醫療機器與LAN連接,雖然依賴于數據信息的長度以及數據發送的頻度,但如果假定平均信息長度為128字節,即使是同時送信,推算大約1.5s左右數據便可以存入數據庫(如果不考慮數據庫機器回答的等待時間,50ms內全部通信可以完成)。
今后的課題是,在這個系統上,如果各種各樣的醫療機器需要同時使用時,軟件的標準化將成為一大問題。