控制器局域網總線(CAN,Controller Area Network)是一種用于實時應用的串行通訊協議總線,它可以使用雙絞線來傳輸信號,是世界上應用最廣泛的現場總線之一。CAN協議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協議的健壯性使其用途延伸到其他自動化和工業(yè)應用。CAN協議的特性包括完整性的串行數據通訊、提供實時支持、傳輸速率高達1Mb/s、同時具有11位的尋址以及檢錯能力。
電子送經卷取系統(tǒng)是紡織工藝流程的一個重要環(huán)節(jié),其控制性能的優(yōu)劣直接影響著工藝過程及織機的效率。然而,通信又是該系統(tǒng)的關鍵技術,使得電子送經卷取系統(tǒng)通信的設計受到國內外紡織公司(德國的百格拉,意大利的舒美特等公司)的高度重視,提出了多種設計方案。然而,中國用戶仍然面臨著劍桿織機送經和卷取系統(tǒng)的價格昂貴、操作復雜,數據傳輸效率低等問題。
CAN(控制器局域網)總線是一種有效支持分布式控制和實時控制的串行通信網絡,與其它通訊相比,其數據通信具有突出的靈活性和可靠性。ARM控制器可以滿足一般的工業(yè)控制的需要,其具有減少系統(tǒng)硬件設計的復雜度和性價比高等優(yōu)點而得到廣泛應用。
控制器局域網是國際上應用最廣泛的現場總線之一。CAN被設計作為汽車環(huán)境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡。比如:發(fā)動機管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,均嵌入CAN控制裝置。一個由CAN 總線構成的單一網絡中,理論上可以掛接無數個節(jié)點。實際應用中,節(jié)點數目受網絡硬件的電氣特性所限制。例如,當使用Philips P82C250作為CAN收發(fā)器時,同一網絡中允許掛接110個節(jié)點。CAN 可提供高達1Mbit/s的數據傳輸速率,這使實時控制變得非常容易。另外,硬件的錯誤檢定特性也增強了CAN的抗電磁干擾能力。
CAN是在1980年代初所制定的規(guī)格,一開始是由羅伯特·博世公司所開發(fā),并在1993年標準化(ISO 11898-1),被廣泛的應用在各種車輛與電子設備上。CAN為一序列總線,它提供高安全檔次及有效率的即時控制。更具備了調試和優(yōu)先權判別的機制,在這樣的機制下,網絡消息的傳輸變的更為可靠而有效率。CAN亦提供多主控端的架構,這種特色,特別適合使用在主系統(tǒng)或子系統(tǒng)下提供更完整智能網絡設備,如感測器及致動器。CAN是創(chuàng)建在基于信息導向傳輸協議的廣播傳輸機制(broadcast communication mechanism)上。CAN定義信息的內容,利用消息識別子(message identifier,每個message identifier在整個網絡中皆為獨一無二的)來定義內容和信息的優(yōu)先順位,以進行信息的傳遞。并非使用指派特定站臺地址(station address)的方式。如此,CAN擁有了高度的彈性調整能力,可以在既有的網絡中增加站臺而不用在軟硬件上作修正與調整的作業(yè)。除此之外,信息的傳遞不是建構在特殊種類的站臺上,增加了在升級網絡時的便利性。即時的信息傳輸(Real-time data transmission)為CAN的特色之一。在即時的運算中,消息傳遞的優(yōu)先級應以重要性來分,重要性較高的消息會比較不重要的消息傳遞的更頻繁。
1 送經卷取系統(tǒng)的總體設計
根據技術及經濟需求,本設計選取ARM7-LPC2194為主控制器,作為CAN網絡節(jié)點控制器,(其中LPC2194內部集成有四路CAN控制器而不必外接CAN控制器),應用CAN總線技術和接口電路,實現了節(jié)點間的高效數據交換和傳輸。系統(tǒng)總體框圖如圖1所示。

2 系統(tǒng)的硬件設計
2.1 系統(tǒng)CAN總線的實現
送經卷取系統(tǒng)主要由內部集成有四路CAN控制器的ARM7-LPC2194芯片、光電隔離器TLP2631、CAN收發(fā)器PCA82C250及送經卷取驅動器等元件組成,其結構如圖2所示。

本設計分別將協議控制器通過串行數據輸出線TX和串行數據輸入線RX連接到光電隔離器TLP2631的3管腳和7管腳,實現了光電隔離。利用CAN收發(fā)器。PCA82C250將從光電隔離器TLP2631輸出的差動的總線信號轉換成邏輯信號電平并在RxD輸出,接收到的串行數據通過與總線電纜相連的差動發(fā)送和接收總線終端CANH和CANL將數據送到總線協議控制器譯碼,完成了普通電平到顯、隱性電平的傳輸。CAN總線獲取顯、隱性電平后,再經過PCA82C250和光電耦合器TLP2631將數據傳輸給送經驅動器、卷取驅動器的CAN接收端口,從而實現了基于CAN總線的數據傳輸。
2.2 系統(tǒng)抗干擾的設計
信號數據傳輸過程中,存在著擾動,為此本設計采取以下措施來克服干擾的影響:
1)為了滿足光電隔離的要求,本設計在協議控制器和CAN收發(fā)器之間加入了TLP2631光電隔離器,有效地抑制了傳輸線中由于耦合電容、電感造成的干擾,實現了不同電平的轉換。
2)為了匹配數據總線的阻抗和提高數據傳輸的抗干擾能力,在CAN總線終端的兩端加有兩個120 Ω總線阻抗匹配電阻。若不接這兩個電阻,有時甚至無法通信。采用屏蔽雙絞線以減少現場環(huán)境對結點的干擾。
3 系統(tǒng)的軟件設計
送經卷取系統(tǒng)的軟件設計是實現數據高效通信的關鍵,本文的軟件部分主要由數據采集程序和CAN總線通信程序設計兩部分組成。其中數據采集程序可參考文獻,本文重點論述CAN通訊程序的設計。
3.1 開發(fā)環(huán)境
軟件開發(fā)環(huán)境,選用ADS1.2集成開發(fā)環(huán)境,ADS是ARM微控制器集成開發(fā)工具。ADS1.2支持ARM10之前所有ARM系列,支持軟件調試及JTAG硬件仿真調試,支持匯編語言、C/C++源程序;具有編譯效率高、系統(tǒng)庫功能強等特點;可以在WINDOWS 98、WINDOWS XP、WINDOWS 2000上運行。
3.2 CAN總線通信主程序的設計
本程序采用模塊化結構,來實現各結點間的通信。程序首先對CAN控制器函數初始化,其次檢測是否有接收幀和數據異常,實現數據的接收和發(fā)送。從而完成ARM芯片啟動代碼的編碼,其結構如圖3所示。然后,主程序通過調用CAN啟動驅動程序提供的接口,便可實現數據的有效傳輸。

3.3 CAN控制器函數初始化
CAN控制器初始化,主要是完成總線的參數設置,其主要包括硬件使能、寄存器復位、波特率及驗收濾波器的工作方式等設置,其結構如圖4所示。

硬件使能是通過寄存器來控制多路開關并使其與CAN控制器連接,因為CAN的某些寄存器必須在軟復位狀態(tài)下讀寫,所以一定要進行軟件復位。
初始化子程序采用的主要函數如下:

3.4 數據接收子程序
接收數據可采用查詢方式或中斷方式,本文采用數據查詢方式,完成子程序的設計,利用旁路濾波器,通過查詢接收數據存儲空間,判斷是否接收信息寄存器、標識符寄存器、數據寄存器的RX幀。由于接收緩沖區(qū)的容量不大,所以接收緩沖區(qū)接收幀,必須立即進入環(huán)形接收緩沖區(qū),然后再對環(huán)形接收緩沖區(qū)里的信息進行分類處理。
3.5 發(fā)送子程序
總線將采集到的數據(Tx幀信息寄存器、Tx標識符寄存器、Tx數據寄存器A、Tx數據寄存器B)經過打包成符合發(fā)送幀格式的數據后,通過調用發(fā)送數據函數進行數據的發(fā)送。程序首先檢查LPC2194的3個發(fā)送緩沖區(qū)和總線的空閑空間,通過查詢CANSR的TCS位,將幀傳到總線,結構如圖5所示。

解決國內電子送經卷取系統(tǒng)數據傳輸率低和國外系統(tǒng)價格昂貴問題,本文設計了一種基于ARM7的紡織機送經和卷取系統(tǒng),利用性價比高的主控器ARM7-LPC2194、CAN接收器PCA82C250和光電耦合器TLP2631,實現了送經卷取系統(tǒng)總線的網絡節(jié)點設計,較好地解決了紡織機的電子送經和卷曲系統(tǒng)的數據傳輸問題,該系統(tǒng)自動化程度,具有高效的通信率和抗干擾能力。同時,本系統(tǒng)的通信方案,對于其它工業(yè)測控領域也具有較好的應用前景。
控制器局域網CAN( Controller Area Network)屬于現場總線的范疇,是一種有效支持分布式控制系統(tǒng)的串行通信網絡。是由德國博世公司在20世紀80年代專門為汽車行業(yè)開發(fā)的一種串行通信總線。由于其高性能、高可靠性以及獨特的設計而越來越受到人們的重視,被廣泛應用于諸多領域。而且能夠檢測出產生的任何錯誤。當信號傳輸距離達到10km時,CAN仍可提供高達50kbit/s的數據傳輸速率。由于CAN總線具有很高的實時性能和應用范圍,從位速率最高可達1Mbps的高速網絡到低成本多線路的50Kbps網絡都可以任意搭配。因此,CAN己經在汽車業(yè)、航空業(yè)、工業(yè)控制、安全防護等領域中得到了廣泛應用。隨著CAN總線在各個行業(yè)和領域的廣泛應用,對其的通信格式標準化也提出了更嚴格的要求。1991年CAN總線技術規(guī)范(Version2.0)制定并發(fā)布。該技術規(guī)范共包括A和B兩個部分。其中2.0A給出了CAN報文標準格式,而2.0B給出了標準的和擴展的兩種格式。美國的汽車工程學會SAE在2000年提出了J1939協議,此后該協議成為了貨車和客車中控制器局域網的通用標準。CAN總線技術也在不斷發(fā)展。傳統(tǒng)的CAN是基于事件觸發(fā)的,信息傳輸時間的不確定性和優(yōu)先級反轉是它固有的缺陷。當總線上傳輸消息密度較小時,這些缺陷對系統(tǒng)的實時性影響較小;但隨著在總線上傳輸消息密度的增加,系統(tǒng)實時性能會急劇下降。為了滿足汽車控制對實時性和傳輸消息密度不斷增長的需要,改善CAN總線的實時性能非常必要。于是,傳統(tǒng)CAN與時間觸發(fā)機制相結合產生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN總線和傳統(tǒng)CAN總線系統(tǒng)的區(qū)別是:總線上不同的消息定義了不同的時間槽(Timer Slot)。