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