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