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