現(xiàn)場總線已不是新的技術(shù),,在實(shí)際中,,現(xiàn)場總線得到諸多應(yīng)用。缺乏現(xiàn)場總線,,很多應(yīng)用無法得以實(shí)現(xiàn),。為增進(jìn)大家對現(xiàn)場總線的認(rèn)識(shí),,本文將對基于ARM920T的現(xiàn)場總線控制系統(tǒng)加以介紹。
1,、引言
隨著工業(yè)控制系統(tǒng)逐步的自動(dòng)化,,現(xiàn)代化,現(xiàn)場總線控制系統(tǒng)得到越來越多的重視和應(yīng)用,,CAN總線是目前開發(fā)簡單,,性能價(jià)格比高的一種現(xiàn)場總線。相對其他現(xiàn)場總線而言,,CAN通信控制器的生產(chǎn)廠家最多,、品種最全、應(yīng)用也最為廣泛,?;诂F(xiàn)場總線控制系統(tǒng)智能化、復(fù)雜度的提高,,作為現(xiàn)場總線的核心部件微處理器,,傳統(tǒng)的51芯片,甚至ARM7已經(jīng)逐漸不能滿足需要,,ARM9成為合適的選擇,。但許多ARM9并沒有集成CAN接口,擴(kuò)展CAN接口成為當(dāng)務(wù)之急,。且ARM9將數(shù)據(jù)地址總線分開,,而CAN控制器為數(shù)據(jù)地址總線復(fù)用,使得CAN的擴(kuò)展不能一味照搬51處理器的方式,。在CAN模塊驅(qū)動(dòng)開發(fā)上,,現(xiàn)有資料往往只針對Linux系統(tǒng)上的驅(qū)動(dòng)開發(fā) 進(jìn)行介紹,而現(xiàn)場總線控制系統(tǒng)對實(shí)時(shí)性的要求使得Linux系統(tǒng)要讓位于更多的實(shí)時(shí)操作系統(tǒng),。
下面介紹了一種基于ARM920T現(xiàn)場總線的控制系統(tǒng),,詳細(xì)說明了其上擴(kuò)展CAN總線的兩種方式,并給出具體的CAN模塊在實(shí)時(shí)操作系統(tǒng)eCos 上驅(qū)動(dòng)程序開發(fā)的步驟,,最后對兩種擴(kuò)展進(jìn)行了簡要的比較,。
2、現(xiàn)場總線控制系統(tǒng)簡介
該現(xiàn)場總線控制系統(tǒng)采用EP9315為核心處理器,。EP9315是Cirrus Logic公司開發(fā)的一款基于ARM920T的工業(yè)級(jí)處理器,。該現(xiàn)場總線控制系統(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鍵盤,,三個(gè)USB接口,、三個(gè)串行接口、音頻接口,、1/10/100Mbps以太網(wǎng)接口、紅外線接收口;實(shí)現(xiàn)了控制系統(tǒng)的數(shù)字化,、智能化;可實(shí)現(xiàn)多種功能,,使系統(tǒng)的控制功能本地化,提高了系統(tǒng)的可靠性,、實(shí)時(shí)性;簡化了系統(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是使用于汽車和一般工業(yè)環(huán)境的獨(dú)立CAN總線控制器,,具有完成CAN高性能通信協(xié)議所要求的全部必要特性;具有簡單總線連接的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相連,而是通過兩片光耦隔離芯片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è)無直接電氣聯(lián)系,、相互隔離的直流電源。因而采用兩路DC-DC隔離電源實(shí)現(xiàn),。為進(jìn)一步加強(qiáng)安全性和抗干擾能力,,可在總線收發(fā)器TJA1040T與CAN總線間串接限流電阻,,避免TJA1040T受過流沖擊,。同時(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ù)通信的抗干擾性和可靠性大大降低,,甚至無法通信,。
3.2 CAN模塊與ARM9的兩種連接方式
SJA1000T數(shù)據(jù)地址總線復(fù)用,而整個(gè)ARM9系列包括ARM920T數(shù)據(jù)和地址總線分開,。這就使得它與ARM9系列的連接不能像傳統(tǒng)的用于51單片機(jī)系列方式擴(kuò)展連接,,本文給出兩種擴(kuò)展方式 :全部IO口連接方式和最少IO口的數(shù)據(jù)信號(hào)線連接方式。
3.2.1 IO接口連接
微處理器的通用IO口可以提供一個(gè)簡便的方法來控制SJA100T,。EP9315的GPIO信號(hào)提供了很大的靈活度來滿足SJA1000T時(shí)間上的要求,。將SJA1000T數(shù)據(jù)地址復(fù)用總線全部與EP9315的通用IO接口連接。其它信號(hào)線WR,、RD,、ALE……也與IO接口連接。具體連接方式參考下圖,。
3.2.2 數(shù)據(jù)信號(hào)線連接
除了全部由IO端口來控制CAN模塊,,還可利用ARM9的數(shù)據(jù)線和信號(hào)線來實(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,,故需要通過74LVC245這類電平匹配芯片進(jìn)行電平匹配后再連接。