現(xiàn)場(chǎng)總線已不是新的技術(shù),,在實(shí)際中,現(xiàn)場(chǎng)總線得到諸多應(yīng)用,。缺乏現(xiàn)場(chǎng)總線,,很多應(yīng)用無(wú)法得以實(shí)現(xiàn)。為增進(jìn)大家對(duì)現(xiàn)場(chǎng)總線的認(rèn)識(shí),,本文將對(duì)基于ARM920T的現(xiàn)場(chǎng)總線控制系統(tǒng)加以介紹,。
1、引言
隨著工業(yè)控制系統(tǒng)逐步的自動(dòng)化,,現(xiàn)代化,,現(xiàn)場(chǎng)總線控制系統(tǒng)得到越來(lái)越多的重視和應(yīng)用,CAN總線是目前開(kāi)發(fā)簡(jiǎn)單,,性能價(jià)格比高的一種現(xiàn)場(chǎng)總線,。相對(duì)其他現(xiàn)場(chǎng)總線而言,,CAN通信控制器的生產(chǎn)廠家最多、品種最全,、應(yīng)用也最為廣泛,。基于現(xiàn)場(chǎng)總線控制系統(tǒng)智能化,、復(fù)雜度的提高,,作為現(xiàn)場(chǎng)總線的核心部件微處理器,傳統(tǒng)的51芯片,,甚至ARM7已經(jīng)逐漸不能滿足需要,,ARM9成為合適的選擇。但許多ARM9并沒(méi)有集成CAN接口,,擴(kuò)展CAN接口成為當(dāng)務(wù)之急,。且ARM9將數(shù)據(jù)地址總線分開(kāi),而CAN控制器為數(shù)據(jù)地址總線復(fù)用,,使得CAN的擴(kuò)展不能一味照搬51處理器的方式,。在CAN模塊驅(qū)動(dòng)開(kāi)發(fā)上,現(xiàn)有資料往往只針對(duì)Linux系統(tǒng)上的驅(qū)動(dòng)開(kāi)發(fā) 進(jìn)行介紹,,而現(xiàn)場(chǎng)總線控制系統(tǒng)對(duì)實(shí)時(shí)性的要求使得Linux系統(tǒng)要讓位于更多的實(shí)時(shí)操作系統(tǒng),。
下面介紹了一種基于ARM920T現(xiàn)場(chǎng)總線的控制系統(tǒng),詳細(xì)說(shuō)明了其上擴(kuò)展CAN總線的兩種方式,,并給出具體的CAN模塊在實(shí)時(shí)操作系統(tǒng)eCos 上驅(qū)動(dòng)程序開(kāi)發(fā)的步驟,,最后對(duì)兩種擴(kuò)展進(jìn)行了簡(jiǎn)要的比較。
2,、現(xiàn)場(chǎng)總線控制系統(tǒng)簡(jiǎn)介
該現(xiàn)場(chǎng)總線控制系統(tǒng)采用EP9315為核心處理器,。EP9315是Cirrus Logic公司開(kāi)發(fā)的一款基于ARM920T的工業(yè)級(jí)處理器。該現(xiàn)場(chǎng)總線控制系統(tǒng)除了外擴(kuò)的CAN總線接口,、還外擴(kuò)64Mb SDRAM和32MB FLASH,、并帶有PCMCIA 接口、E PROM接口,、512kb SRAM,、IDE接口、實(shí)時(shí)時(shí)鐘,、視頻顯示、彩色VGA TFT LCD觸摸屏,、支持模擬VGA連接,、視頻解碼支持壓縮視頻輸出和S-VIDEO輸出、PS/2鍵盤(pán),,三個(gè)USB接口,、三個(gè)串行接口,、音頻接口、1/10/100Mbps以太網(wǎng)接口,、紅外線接收口;實(shí)現(xiàn)了控制系統(tǒng)的數(shù)字化,、智能化;可實(shí)現(xiàn)多種功能,使系統(tǒng)的控制功能本地化,,提高了系統(tǒng)的可靠性,、實(shí)時(shí)性;簡(jiǎn)化了系統(tǒng)的結(jié)構(gòu)。多接口的系統(tǒng)結(jié)構(gòu)使系統(tǒng)的擴(kuò)展,,變更,,拆裝更加靈活便利。
3,、硬件系統(tǒng)擴(kuò)展
3.1 CAN總線模塊結(jié)構(gòu)
本文使用SJA1000T作為CAN控制器擴(kuò)展CAN模塊 ,。SJA1000T是使用于汽車(chē)和一般工業(yè)環(huán)境的獨(dú)立CAN總線控制器,具有完成CAN高性能通信協(xié)議所要求的全部必要特性;具有簡(jiǎn)單總線連接的SJA1000T可完成物理層和數(shù)據(jù)鏈路層的所有功能,。支持CAN2.0協(xié)議,。
CAN總線收發(fā)器TJA1040T是CAN控制器和物理總線之間的接口芯片,增強(qiáng)了總線的驅(qū)動(dòng)能力,,從而增加CAN總線的通信距離并使得一條總線上可以掛更多的節(jié)點(diǎn),。
為增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力 ,SJA1000T的TXO和RXO并不直接與TJA1040的TXD和RXD相連,,而是通過(guò)兩片光耦隔離芯片6N137與TJA1040T相連,。很好地實(shí)現(xiàn)了收發(fā)器與控制器之間的電氣隔離,保護(hù)智能節(jié)點(diǎn)核心電路安全工作;并實(shí)現(xiàn)了總線上各CAN節(jié)點(diǎn)間的電氣隔離,。需要強(qiáng)調(diào)的是:為實(shí)現(xiàn)這種電氣隔離,,光耦器件兩側(cè)的直流電源必須是兩個(gè)無(wú)直接電氣聯(lián)系、相互隔離的直流電源,。因而采用兩路DC-DC隔離電源實(shí)現(xiàn),。為進(jìn)一步加強(qiáng)安全性和抗干擾能力,可在總線收發(fā)器TJA1040T與CAN總線間串接限流電阻,,避免TJA1040T受過(guò)流沖擊,。同時(shí),在CANH和CANL,,與地之間并聯(lián)了濾波電容,,可以起到濾除總線上的高頻干擾,并具備一定的防電磁輻射能力,。此外,,通信信號(hào)在線路上傳輸時(shí),信號(hào)傳輸?shù)綄?dǎo)線的端點(diǎn)時(shí)會(huì)發(fā)生反射,,反射信號(hào)會(huì)干擾正常信號(hào)的傳輸,。為消除這種影響,,可在CAN總線兩端并接匹配電阻,起到匹配總線阻抗和消除反射的雙重作用,。若忽略這些措施,,會(huì)使數(shù)據(jù)通信的抗干擾性和可靠性大大降低,甚至無(wú)法通信,。
3.2 CAN模塊與ARM9的兩種連接方式
SJA1000T數(shù)據(jù)地址總線復(fù)用,,而整個(gè)ARM9系列包括ARM920T數(shù)據(jù)和地址總線分開(kāi)。這就使得它與ARM9系列的連接不能像傳統(tǒng)的用于51單片機(jī)系列方式擴(kuò)展連接,,本文給出兩種擴(kuò)展方式 :全部IO口連接方式和最少I(mǎi)O口的數(shù)據(jù)信號(hào)線連接方式,。
3.2.1 IO接口連接
微處理器的通用IO口可以提供一個(gè)簡(jiǎn)便的方法來(lái)控制SJA100T。EP9315的GPIO信號(hào)提供了很大的靈活度來(lái)滿足SJA1000T時(shí)間上的要求,。將SJA1000T數(shù)據(jù)地址復(fù)用總線全部與EP9315的通用IO接口連接,。其它信號(hào)線WR、RD,、ALE……也與IO接口連接,。具體連接方式參考下圖。
3.2.2 數(shù)據(jù)信號(hào)線連接
除了全部由IO端口來(lái)控制CAN模塊,,還可利用ARM9的數(shù)據(jù)線和信號(hào)線來(lái)實(shí)現(xiàn)CAN模塊的擴(kuò)展,。連接電路如圖3所示,凡SJA1000T以外的信號(hào)均為EP9315芯片上的信號(hào)管腳,,SJA1000T數(shù)據(jù)地址復(fù)用總線與EP9315數(shù)據(jù)線相連,,GPIOx、GPIOy,、GPIOz可以是EP9315任意GPIO引腳,,但選擇同一個(gè)通道的GPIO口將使編程更容易。注意SJA100T的INT可以連接CPU的INT也可以連接到帶有中斷的通用IO上,。在EP9315中,,GPIO的通道A,B,,F(xiàn)有中斷功能,。
上面兩圖是示意圖,具體的由于EP9315信號(hào)高電平為3.3V,,而SJA1000T高電平為5V,,故需要通過(guò)74LVC245這類(lèi)電平匹配芯片進(jìn)行電平匹配后再連接。