用87C196NT單片機實現CAN總線通信
發布時間:2008/6/3 0:00:00 訪問次數:834
摘要:主要介紹can總線的原理及如何用87c196nt單片機實現基于can總線的網絡通信;對其硬件和軟件設計作詳細的分析,最后給出下位機程序。 關鍵詞:單片機 can總線 87c196nt pca82c200 1 can總線簡介 can(controller area network)即控制器局域網,主要用于各種設備監測及控制的一種現場總線。can總線最初是由德國bosch公司為汽車的監測、控制系統而設計的。can總線具有獨特的設計思想,良好的功能特性和極高的可靠性,現場抗干擾能力強。具體來講,can總線具有如下特點: *結構簡單,只有2根線與外部相連,且內部含有錯誤探測和管理模塊。 *通信方式靈活。可以多主方式工作,網絡上任意一個節點均可以在任意時刻主動地向網絡上的其它節點發送信息,而不分主從。 *可以點對點、點對多點及全局廣播方式發送和接收數據。
*網絡上的節點信息可分成不同的優先級,可以滿足不同的實時要求。 *can總線通信格式采用短幀格式,每幀字節數最多為8個,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8個字節也不會占用總線時間過長,從而保證了通信的實時性。 *采用非破壞性總線仲裁技術。當2個節點同時向總線上發送數據時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳輸數據。這大大地節省了總線仲裁沖突時間,在網絡負載很重的情況下也不會出現網絡癱瘓。 *直接通信距離最大可達10km(速率5kb/s以下),最高通信速率可達1mb/s(此時距離最長為40m);節點數可達110個,通信介質可以是雙絞線、網軸電纜或光導纖維。 *can總線通信接口中集成了can協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余檢驗、優先級判別等多項工作。 *can總線采用crc檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。 can總線的以上特點,為工業控制系統中高可靠性的數據傳送提供了一種新的解決方案。其在國外工業測控領域已經有了廣泛的應用,現國內的許多工業控制領域也開始使用基于can的現場總線。can總線已成為最有發展前途的4種現場總線之一。 2 單片機控制系統硬件設計 本設計采用intel 196系列中的87c196nt單片機。87c196nt具有1mb的尋址空間,本身不帶can控制器,所以要實現與can總線之間的通信,需外加can控制器和can驅動芯片。在本設計中我們采用ltl-can。ltl-can是一種can總線控制、驅動隔離收發器,由can控制器芯片pca82c200、can驅動芯片pca82c250、16mhz的晶振及光隔電路用厚膜封裝而成。它只支持標準信息幀格式,其內部邏輯功能如圖1所示。ltc-can引腳定義如表1所列。
表1 ltl-can引腳定義 引 腳 符 號 功 能 引 腳 符 號 功 能 1 vcc 電源vcc 16 int can中斷 2 gnd 地gnd 17 nc 空 3 cs can片選 18~27 n
摘要:主要介紹can總線的原理及如何用87c196nt單片機實現基于can總線的網絡通信;對其硬件和軟件設計作詳細的分析,最后給出下位機程序。 關鍵詞:單片機 can總線 87c196nt pca82c200 1 can總線簡介 can(controller area network)即控制器局域網,主要用于各種設備監測及控制的一種現場總線。can總線最初是由德國bosch公司為汽車的監測、控制系統而設計的。can總線具有獨特的設計思想,良好的功能特性和極高的可靠性,現場抗干擾能力強。具體來講,can總線具有如下特點: *結構簡單,只有2根線與外部相連,且內部含有錯誤探測和管理模塊。 *通信方式靈活。可以多主方式工作,網絡上任意一個節點均可以在任意時刻主動地向網絡上的其它節點發送信息,而不分主從。 *可以點對點、點對多點及全局廣播方式發送和接收數據。
*網絡上的節點信息可分成不同的優先級,可以滿足不同的實時要求。 *can總線通信格式采用短幀格式,每幀字節數最多為8個,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8個字節也不會占用總線時間過長,從而保證了通信的實時性。 *采用非破壞性總線仲裁技術。當2個節點同時向總線上發送數據時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳輸數據。這大大地節省了總線仲裁沖突時間,在網絡負載很重的情況下也不會出現網絡癱瘓。 *直接通信距離最大可達10km(速率5kb/s以下),最高通信速率可達1mb/s(此時距離最長為40m);節點數可達110個,通信介質可以是雙絞線、網軸電纜或光導纖維。 *can總線通信接口中集成了can協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余檢驗、優先級判別等多項工作。 *can總線采用crc檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。 can總線的以上特點,為工業控制系統中高可靠性的數據傳送提供了一種新的解決方案。其在國外工業測控領域已經有了廣泛的應用,現國內的許多工業控制領域也開始使用基于can的現場總線。can總線已成為最有發展前途的4種現場總線之一。 2 單片機控制系統硬件設計 本設計采用intel 196系列中的87c196nt單片機。87c196nt具有1mb的尋址空間,本身不帶can控制器,所以要實現與can總線之間的通信,需外加can控制器和can驅動芯片。在本設計中我們采用ltl-can。ltl-can是一種can總線控制、驅動隔離收發器,由can控制器芯片pca82c200、can驅動芯片pca82c250、16mhz的晶振及光隔電路用厚膜封裝而成。它只支持標準信息幀格式,其內部邏輯功能如圖1所示。ltc-can引腳定義如表1所列。
表1 ltl-can引腳定義 引 腳 符 號 功 能 引 腳 符 號 功 能 1 vcc 電源vcc 16 int can中斷 2 gnd 地gnd 17 nc 空 3 cs can片選 18~27 n