基于A(yíng)DG663的CAN總線(xiàn)網(wǎng)絡(luò )擴展方案設計
CAN(Controller Area Network)總線(xiàn)屬于現場(chǎng)總線(xiàn)的范疇,它是德國B(niǎo)osch公司在20世紀80年代初為解決現代汽車(chē)中眾多的控制與測試儀器之間的數據交換而開(kāi)發(fā)的一種串行數據通信協(xié)議。自Bosch公司推出CAN總線(xiàn)至今,CAN總線(xiàn)以其系統的實(shí)用性、可靠性和經(jīng)濟性而倍受青睞,并獲得了長(cháng)足的進(jìn)步。CAN總線(xiàn)是目前惟一有國際標準的現場(chǎng)總線(xiàn),可實(shí)現全分布式多機系統,采用非破壞性總線(xiàn)仲裁技術(shù),可滿(mǎn)足不同的實(shí)時(shí)要求,通信距離最遠可達10km(傳輸率為 5Kb/s),通信速率最高可達lMb/s(傳輸距離為40m);節點(diǎn)數可達110個(gè),傳輸介質(zhì)為雙絞線(xiàn)或光纖,報文采用短幀結構,帶有CRC校驗以及其他檢錯措施,使得數據出錯率極低, 可靠性極高。CAN總線(xiàn)以其卓越的特性,低廉的價(jià)格,極高的可靠性和靈活的結構,已被公認為最有前途的現場(chǎng)總線(xiàn)之一。
正由于CAN總線(xiàn)具有諸多其他總線(xiàn)無(wú)法比擬的特性,所以CAN在許多場(chǎng)合應用廣泛。然而,有時(shí)由于工程項目的特殊要求,需要CAN總線(xiàn)連接更多的節點(diǎn)或是更遠的通信距離,這就必須對CAN總線(xiàn)網(wǎng)絡(luò )進(jìn)行擴展。目前比較常用的CAN總線(xiàn)擴展方法是利用CAN中繼器將兩個(gè)CAN總線(xiàn)網(wǎng)絡(luò )連接起來(lái),如周立功的 CANrep-AB型智能全隔離CAN中繼器、CAN-3202智能CAN總線(xiàn)兩路中繼網(wǎng)橋、XYCANR2雙端口CAN光電隔離中繼器、ADAM- 4515 CAN中繼器以及WT406-CAN CAN總線(xiàn)中繼模塊等。這些CAN中繼器都是采用微控制器對兩個(gè)CAN網(wǎng)絡(luò )的數據進(jìn)行分別存儲和相互轉發(fā),從而實(shí)現兩個(gè)網(wǎng)絡(luò )的連接和雙向的數據傳輸。如果要利用中繼器實(shí)現CAN總線(xiàn)網(wǎng)絡(luò )的擴展就必須增加相應的微控制器:CAN控制器和CAN驅動(dòng)器。這樣就增加了系統成本,提高了工程造價(jià)。
基于上述問(wèn)題,我們設計了一種基于模擬開(kāi)關(guān)ADG663的CAN總線(xiàn)網(wǎng)絡(luò )擴展方案。利用模擬開(kāi)關(guān)可以分時(shí)導通的特性,我們將微控制器經(jīng)過(guò)CAN控制器出來(lái)的信號分時(shí)的打到兩個(gè)位于不同CAN網(wǎng)絡(luò )的CAN驅動(dòng)器上,這樣就可以把微控制器分時(shí)的掛到兩個(gè)CAN網(wǎng)絡(luò )上,實(shí)現兩個(gè)CAN網(wǎng)絡(luò )之間的數據交換,從而實(shí)現了 CAN總線(xiàn)網(wǎng)絡(luò )的無(wú)中繼擴展。如圖1所示,將網(wǎng)絡(luò )相鄰處的微控制器通過(guò)模擬開(kāi)關(guān)分時(shí)復用的連接到兩個(gè)CAN網(wǎng)絡(luò )上,既能實(shí)現網(wǎng)絡(luò )的擴展又能完成本節點(diǎn)的測控任務(wù),從而省去了中繼器,降低了系統成本。根據CAN通信的特點(diǎn),要對兩路CAN信號進(jìn)行切換,我們采用獨立四通道可控模擬開(kāi)關(guān)ADG663,通過(guò)對其控制引腳進(jìn)行編程控制實(shí)現微控制器在兩個(gè)CAN總線(xiàn)網(wǎng)絡(luò )中的切換。
2. ADG663簡(jiǎn)介
ADG663 是ADI公司生產(chǎn)的集成COMS開(kāi)關(guān)器件。它包含4個(gè)獨立的可選模擬開(kāi)關(guān)通道,可以由控制端方便的控制其通斷。這些通道具有很低的導通電阻和很寬的信號輸入范圍,可實(shí)現精確的模擬信號切換。整個(gè)器件基于A(yíng)DI公司先進(jìn)的線(xiàn)性兼容CMOS(LC2MOS)工藝制作而成,具有低漏電流、超低功耗、高速工作時(shí)極小的電荷積累等特點(diǎn)。尤其是ADG663的四通道中有兩通道是高電平導通,而另外兩個(gè)是低電平導通,這樣不光使得模擬開(kāi)關(guān)的控制信號非常簡(jiǎn)單,而且使得 CAN總線(xiàn)收發(fā)切換更加同步。ADG663的功能框圖如圖2所示IN1~IN4為控制信號端,S1~S4為輸入信號,D1~D4為對應的輸出信號。
3. 基于A(yíng)DG663的CAN總線(xiàn)網(wǎng)絡(luò )擴展
3.1 擴展電路的硬件設計
在CAN總線(xiàn)網(wǎng)絡(luò )中,我們用于檢測的微控制器選用微芯公司新款集成CAN總線(xiàn)控制器的PIC18F458芯片,它是8位CMOS單片機,內部采用哈佛總線(xiàn)結構,使得全部指令單字節、單周期化,有利于提高CPU執行指令的速度,從而提高單片機的運行速度。而CAN驅動(dòng)器我們選用微芯公司的CAN總線(xiàn)驅動(dòng)芯片MCP2551,它完全兼容ISO 11898標準,最高速率可達1Mb/s,提供了比82C250更好電磁輻射和抗電磁干擾能力性能。利用ADG663擴展CAN總線(xiàn)網(wǎng)絡(luò )的原理如圖3所示,由于A(yíng)DG663的特點(diǎn),微控制器僅用一根口線(xiàn)就可以實(shí)現兩個(gè)CAN驅動(dòng)器之間的切換,并同時(shí)保證微處理器對每一個(gè)CAN驅動(dòng)器的收發(fā)同步以及微處理器在任意時(shí)刻均掛在總線(xiàn)上,還可以提高模擬開(kāi)關(guān)切換時(shí)的系統穩定性。
3.2 擴展電路的軟件編程
基于CAN總線(xiàn)的即插即用接口特性,這種擴展方式只需改變中轉節點(diǎn)的編程,而無(wú)須對其余節點(diǎn)進(jìn)行修改。編寫(xiě)中轉節點(diǎn)的程序使其在完成自身的測控任務(wù)的同時(shí)實(shí)現對兩邊數據的存儲和轉發(fā)。要同時(shí)完成這兩個(gè)任務(wù),必須保證微控制器的工作頻率遠大于CAN總線(xiàn)的位速率,這樣可以確保微處理器有足夠的時(shí)間存儲和轉發(fā)兩個(gè)網(wǎng)絡(luò )的數據。由于微處理器利用模擬開(kāi)關(guān)在兩個(gè)CAN網(wǎng)絡(luò )中切換,在理論上必定會(huì )導致總線(xiàn)上部分數據丟失,這就必須要求測量節點(diǎn)對其傳輸數據進(jìn)行適當的重發(fā),從而可以保證數據可以完整的相互交換。對于中轉節點(diǎn),在原有的測量節點(diǎn)程序中,加入定時(shí)器定時(shí),以決定模擬開(kāi)關(guān)的切換頻率。同時(shí)當微控制器連接到某一網(wǎng)絡(luò )后,微處理器不光要將自身檢測信息和控制信號以及接著(zhù)另一個(gè)網(wǎng)絡(luò )時(shí)存儲的信息全部發(fā)送出去,而且還要中斷接收這個(gè)網(wǎng)絡(luò )其他節點(diǎn)的信息并存儲,等到模擬開(kāi)關(guān)切換時(shí)進(jìn)行發(fā)送。節點(diǎn)信息重發(fā)的次數由微處理器的工作頻率以及CAN總線(xiàn)的傳輸速率綜合決定。選擇合適的次數使得一方面總線(xiàn)的冗余信息不會(huì )過(guò)多,另一方面模擬開(kāi)關(guān)的切換過(guò)程中微處理器不會(huì )丟失掉過(guò)多的信息。
4. 結束語(yǔ)
本文討論的這種基于模擬乘法器ADG663的CAN總線(xiàn)網(wǎng)絡(luò )擴展方案省去了CAN中繼器,簡(jiǎn)化了系統硬件連接,降低了系統成本,為CAN總線(xiàn)的網(wǎng)絡(luò )擴展提供了一種簡(jiǎn)單有效的實(shí)現方法。然而簡(jiǎn)化硬件的同時(shí)就不可避免的增加了系統軟件的復雜性,并對系統通信速率有了一定限制。因此,該方案適應于數據傳輸量不是很大,速率要求不是很高的場(chǎng)合。
評論