CAN總線在汽車電子的應用與實現
控制器局域網(CAN)是一種有效支持分布式控制或實時控制的現場總線,具有高性能和高可靠性的特點;隨著現代汽車技術的發展,CAN技術在汽車電子領域應用日益廣泛。文章介紹了符合CAN2.0B協議汽車CAN系統設計方案,著重討論了以微處理器P89C668為核心的CAN總線智能節點的軟硬件實現,推薦一款MOTOROLA的多路開關檢測芯片MC33993,并且涉及到SPI以及在系統編程等技術。
一、汽車電子與CAN總線
隨著汽車電子技術的不斷發展,汽車上各種電子控制單元的數目不斷增加,連接導線顯著增加,因而提高控制單元間通訊可靠性和降低導線成本已成為迫切需要解決的問題。為此以研發和生產汽車電子產品著稱的德國BOSCH公司開發了CAN總線協議,并使其成為國際標準(ISO11898)。1989年,Intel公司率先開發出CAN總線協議控制器芯片,截至目前,世界上已經擁有20多家CAN總線控制器芯片生產商,110多種CAN總線協議控制器芯片和集成CAN總線協議控制器的微處理器芯片。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。我國的汽車CAN總線技術起步較晚,但隨著現代汽車電子的不斷進步發展,其研究和應用正如火如荼的進行中。CAN總線是一種串行多主站控制器局域網總線,是一種有效支持分布式控制或實時控制的串性通訊網絡。CAN總線的通信介質可以是雙絞線,同軸電纜或光導纖維,通信速率可達1Mbps/40m,通信距離可達10km/40Kbps。由于其通信速率高,可靠性好以及價格低廉等特點,使其特別適合中小規模的工業過程監控設備的互連和交通運載工具電氣系統中。
CAN總線有如下基本特點:
1.廢除傳統的站地址編碼,代之以對通信數據塊進行編碼,可以多主方式工作;
2.采用非破壞性仲裁技術,當兩個節點同時向網絡上傳送數據時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響繼續傳輸數據,有效避免了總線沖突;
3.采用短幀結構,每一幀的有效字節數為8個,數據傳輸時間短,受干擾的概率低,重新發送的時間短;
4.每幀數據都有CRC校驗及其他檢錯措施,保證了數據傳輸的高可靠性,適于在高干擾環境下使用;
5.節點在錯誤嚴重的情況下,具有自動關閉總線的功能,切斷它與總線的聯系,以使總線上其他操作不受影響;
6.可以點對點,一對多及廣播集中方式傳送和接受數據。
[img]200612279563948817.gif[/img]
現代汽車典型的控制單元有電控燃油噴射系統,電控傳動系統,防抱死制動系統(ABS),防滑控制系統(ASR),廢氣再循環系統,巡航系統和空調系統,車身電子控制系統(包括照明指示和車窗,刮雨器等)。完善的汽車CAN總線網絡系統架構如圖1所示。
二、CAN節點硬件構架
1.核心芯片
選用PHILIPS公司的高性能8位微處理器P89C668。其突出特點如下:
(1)80C51 中央處理單元;
(2)內置可ISP(在系統編程)和IAP(在應用編程)的Flash 存儲器,Boot ROM 可通過串口訪問從而升級下載用戶程序;
(3)每個機器周期6 個時鐘周期操作標準,每個機器周期12 個時鐘周期操作可選,周期12 個時鐘周期下速度高達33MHz;
(4)8K字節RAM和64K字節FLASH;
(5)4個中斷優先級,8個中斷源;
(6)自帶串行接口序列;
(7)5路可編程的計數器陣列PCA(PWM輸出,捕捉/比較,高速輸出三種工作方式)。
無論從處理能力,存儲容量,還是外圍資源以及網絡可擴展性方面來評價,P89C668都是一款出色的微處理器,適用工控電子等各個領域。尤其是其8K字節RAM的“海量”內存,更是許多高速存儲應用場合的首選。
2.CAN接口電路
采用技術成熟應用廣泛的SJA1000(CAN控制器)、6N137(光電隔離)、P82C250(CAN收發器)組成接口電路。需要指出的是,CAN總線(CANH,CANL)兩端務必跨接120歐的終端電阻。SJA1000中斷引腳接CPU的外中斷0引腳。
3.在應用/系統編程電路
IAP/ISP技術在許多款高性能單片機得到應用,其突出特點是方便快捷的實現程序的下載和更新。P89C668的FLASH空間0XFC00~0XFFFF燒寫入1K字節的Boot Rom程序,上電后可以通過軟件和硬件置位方法進入Boot Rom程序,通過PHILIPS提供的編程軟件由串行口通訊就可以實現程序的在線升級(ISP)。當然用戶還可以根據需要依據協議,自己編寫Boot Rom程序(IAP)。通過撥碼開關硬件置位(ALE、P2.6、P2.7),上電后強制進入Boot Rom程序,燒寫程序完畢后撥回原來狀態重新上電后就進入用戶程序。串行口電平轉換芯片用MAX202替代MAX232,其匹配電容只需103瓷片電容。串行數據通訊波特率可達38400bps。
4.晶振和復位電路
外接一塊工業級的12M振蕩芯片作為時鐘信號。復位電路采用X25045芯片進行智能控制。X25045芯片將看門狗定時器,電源監控電路和E2PROM功能合三為一。看門狗定時器功能在系統出錯期間,經過一個可設置的時間間隔就置位RESET信號。電源監控電路能檢測到欠電壓狀況,在VCC下降到限閥值以下,系統被復位。并且RESET信號在VCC恢復且穩定之前一直有效。存儲器功能的X25405是CMOS的4096字的E2PROM.并且支持SPI協議的三線(SO、SI、SCLK)存取。本節點用到X25405的前兩個功能構成可靠的復位電路。
5.開關/數字量,模擬量檢測電路
汽車節點的開關器件(信號燈、雨刮、面板、車窗玻璃、電動后視鏡等等的開關)特別復雜和繁多,而電流檢測,水溫油位傳感器信號都是非線性的模擬信號,所以可靠實時地對這些開關/模擬量進行檢測成為汽車電子硬件必須解決的問題。傳統的分立元件保持電路存在可靠性差,尤其是開關觸點氧化嚴重,浪費大量的微處理器I/O口等問題,推薦采用MOTOROLA公司的多路開關檢測芯片MC33993。其突出優點如下:
(1)3.3/5.0V的SPI序列讀寫(SO、SI、SCLK);
(2)8路可編程開關輸入檢測(接地或接電源),14路接地開關輸入檢測,每路開關狀態改變均能夠產生中斷;
(3)開關輸入電壓從-14V~Vpwr(工作電源),Vpwr最大可達40V;
(4)開關狀態改變時的可選擇喚醒;
(5)可選擇的濕性電流(16mA或2mA);
(6)22對1的模擬量輸出;
(7)Vpwr的低功耗電流(standby current)小于100uA,VDD的低功耗電流(standby current)小于10uA。
可見只需要四個CPU口線(SPI序列線和片選),就能夠完成22路開關量(其中有8路可編程為對接電源開關)的檢測,還可以進行串行和并行的多片MC33993級連。所謂的濕性電流(wetting current),指的是MC33993內部提供的輸入口的上拉和下拉恒流源,可以編程選擇為16mA或2mA,這對于保證開關的可靠閉合,去除金屬觸點的氧化物有著良好的作用。輸入口的恒流源,可以直接驅動MOSFET以及LED。每一個輸入口都可以編程為模擬量輸出狀態,從而在AMUX引腳輸出所選輸入口的電壓。利用MC33993恒流源和模擬量輸出可以組成線性的傳感器檢測電路。ADC芯片選用AD公司生產的并行數據采樣集成芯片AD1674。它從引腳到功能都與AD574/674完全兼容,但內部增加了采樣/保持電路,采樣頻率為100kHZ,并且有全控模式和單一工作模式。其采樣精度可達0.05%,符合高速數據采集的要求。
6.功率器件驅動電路
汽車車身控制系統需要驅動大功率的用電器件,比如照明信號燈,前后雨刮器電機,電動車窗,電動后視鏡等等。功率驅動器件考慮采用MOTOROLA公司的汽車專用功率器件。MC33286為汽車電氣專用智能的雙路控制驅動芯片,與傳統的機械繼電器相比,自身提供過流和過熱保護,響應時間更短,穩定性更高。MC33286設有兩路驅動通道,每路最大工作電流可達15A,通過兩路輸入端口將CPU引腳電平信號引入,經過內部的邏輯處理模塊轉換成輸出通道的電平變化。特別適合信號燈以及阻性負載的驅動。MC33887是帶反饋的H橋型驅動芯片,專用來驅動需要正反轉的電機負載。MC33486與MC33887類似,但內部只有半橋須外加CMOS管以構成全橋驅動電路,穩定輸出可達10 A,尤其適用于電動車窗電機之類的大功率并伴有沖擊電流的正反相控制要求。
三、軟件結構
系統的程序結構分為四個部分:CAN通訊程序(包括應用層協議的SJA1000通訊)、外圍接口程序(所有檢測芯片和驅動芯片的驅動)、中斷服務程序(處理開關信號以及故障報警等消息)、主程序(完成系統初始化和任務調度,喂狗等)。限于篇幅,以下著重介紹 CAN應用層協議。
本系統CAN通訊選用CAN2.0B協議的PeliCAN模式,通信位速率為500Kbps,采用雙驗收濾波器機制。為使用及修改方便,通訊協議中標識碼設計兼容點對點、一對多及廣播通訊模式。開關量消息通訊時各節點間采用主從結構,子節點的報文只有主節點接收(點對點模式),主節點的報文所有子節點均接收(廣播模式)。模擬量消息通訊時各節點間采用點對點模式。
標識符定義:
(1)類名:00000100—應答類消息(自檢應答、故障診斷);00001000—命令類消息;00010000—調試類消息;00100000—下載類消息;01000000<
一、汽車電子與CAN總線
隨著汽車電子技術的不斷發展,汽車上各種電子控制單元的數目不斷增加,連接導線顯著增加,因而提高控制單元間通訊可靠性和降低導線成本已成為迫切需要解決的問題。為此以研發和生產汽車電子產品著稱的德國BOSCH公司開發了CAN總線協議,并使其成為國際標準(ISO11898)。1989年,Intel公司率先開發出CAN總線協議控制器芯片,截至目前,世界上已經擁有20多家CAN總線控制器芯片生產商,110多種CAN總線協議控制器芯片和集成CAN總線協議控制器的微處理器芯片。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。我國的汽車CAN總線技術起步較晚,但隨著現代汽車電子的不斷進步發展,其研究和應用正如火如荼的進行中。CAN總線是一種串行多主站控制器局域網總線,是一種有效支持分布式控制或實時控制的串性通訊網絡。CAN總線的通信介質可以是雙絞線,同軸電纜或光導纖維,通信速率可達1Mbps/40m,通信距離可達10km/40Kbps。由于其通信速率高,可靠性好以及價格低廉等特點,使其特別適合中小規模的工業過程監控設備的互連和交通運載工具電氣系統中。
CAN總線有如下基本特點:
1.廢除傳統的站地址編碼,代之以對通信數據塊進行編碼,可以多主方式工作;
2.采用非破壞性仲裁技術,當兩個節點同時向網絡上傳送數據時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響繼續傳輸數據,有效避免了總線沖突;
3.采用短幀結構,每一幀的有效字節數為8個,數據傳輸時間短,受干擾的概率低,重新發送的時間短;
4.每幀數據都有CRC校驗及其他檢錯措施,保證了數據傳輸的高可靠性,適于在高干擾環境下使用;
5.節點在錯誤嚴重的情況下,具有自動關閉總線的功能,切斷它與總線的聯系,以使總線上其他操作不受影響;
6.可以點對點,一對多及廣播集中方式傳送和接受數據。
[img]200612279563948817.gif[/img]
現代汽車典型的控制單元有電控燃油噴射系統,電控傳動系統,防抱死制動系統(ABS),防滑控制系統(ASR),廢氣再循環系統,巡航系統和空調系統,車身電子控制系統(包括照明指示和車窗,刮雨器等)。完善的汽車CAN總線網絡系統架構如圖1所示。
二、CAN節點硬件構架
1.核心芯片
選用PHILIPS公司的高性能8位微處理器P89C668。其突出特點如下:
(1)80C51 中央處理單元;
(2)內置可ISP(在系統編程)和IAP(在應用編程)的Flash 存儲器,Boot ROM 可通過串口訪問從而升級下載用戶程序;
(3)每個機器周期6 個時鐘周期操作標準,每個機器周期12 個時鐘周期操作可選,周期12 個時鐘周期下速度高達33MHz;
(4)8K字節RAM和64K字節FLASH;
(5)4個中斷優先級,8個中斷源;
(6)自帶串行接口序列;
(7)5路可編程的計數器陣列PCA(PWM輸出,捕捉/比較,高速輸出三種工作方式)。
無論從處理能力,存儲容量,還是外圍資源以及網絡可擴展性方面來評價,P89C668都是一款出色的微處理器,適用工控電子等各個領域。尤其是其8K字節RAM的“海量”內存,更是許多高速存儲應用場合的首選。
2.CAN接口電路
采用技術成熟應用廣泛的SJA1000(CAN控制器)、6N137(光電隔離)、P82C250(CAN收發器)組成接口電路。需要指出的是,CAN總線(CANH,CANL)兩端務必跨接120歐的終端電阻。SJA1000中斷引腳接CPU的外中斷0引腳。
3.在應用/系統編程電路
IAP/ISP技術在許多款高性能單片機得到應用,其突出特點是方便快捷的實現程序的下載和更新。P89C668的FLASH空間0XFC00~0XFFFF燒寫入1K字節的Boot Rom程序,上電后可以通過軟件和硬件置位方法進入Boot Rom程序,通過PHILIPS提供的編程軟件由串行口通訊就可以實現程序的在線升級(ISP)。當然用戶還可以根據需要依據協議,自己編寫Boot Rom程序(IAP)。通過撥碼開關硬件置位(ALE、P2.6、P2.7),上電后強制進入Boot Rom程序,燒寫程序完畢后撥回原來狀態重新上電后就進入用戶程序。串行口電平轉換芯片用MAX202替代MAX232,其匹配電容只需103瓷片電容。串行數據通訊波特率可達38400bps。
4.晶振和復位電路
外接一塊工業級的12M振蕩芯片作為時鐘信號。復位電路采用X25045芯片進行智能控制。X25045芯片將看門狗定時器,電源監控電路和E2PROM功能合三為一。看門狗定時器功能在系統出錯期間,經過一個可設置的時間間隔就置位RESET信號。電源監控電路能檢測到欠電壓狀況,在VCC下降到限閥值以下,系統被復位。并且RESET信號在VCC恢復且穩定之前一直有效。存儲器功能的X25405是CMOS的4096字的E2PROM.并且支持SPI協議的三線(SO、SI、SCLK)存取。本節點用到X25405的前兩個功能構成可靠的復位電路。
5.開關/數字量,模擬量檢測電路
汽車節點的開關器件(信號燈、雨刮、面板、車窗玻璃、電動后視鏡等等的開關)特別復雜和繁多,而電流檢測,水溫油位傳感器信號都是非線性的模擬信號,所以可靠實時地對這些開關/模擬量進行檢測成為汽車電子硬件必須解決的問題。傳統的分立元件保持電路存在可靠性差,尤其是開關觸點氧化嚴重,浪費大量的微處理器I/O口等問題,推薦采用MOTOROLA公司的多路開關檢測芯片MC33993。其突出優點如下:
(1)3.3/5.0V的SPI序列讀寫(SO、SI、SCLK);
(2)8路可編程開關輸入檢測(接地或接電源),14路接地開關輸入檢測,每路開關狀態改變均能夠產生中斷;
(3)開關輸入電壓從-14V~Vpwr(工作電源),Vpwr最大可達40V;
(4)開關狀態改變時的可選擇喚醒;
(5)可選擇的濕性電流(16mA或2mA);
(6)22對1的模擬量輸出;
(7)Vpwr的低功耗電流(standby current)小于100uA,VDD的低功耗電流(standby current)小于10uA。
可見只需要四個CPU口線(SPI序列線和片選),就能夠完成22路開關量(其中有8路可編程為對接電源開關)的檢測,還可以進行串行和并行的多片MC33993級連。所謂的濕性電流(wetting current),指的是MC33993內部提供的輸入口的上拉和下拉恒流源,可以編程選擇為16mA或2mA,這對于保證開關的可靠閉合,去除金屬觸點的氧化物有著良好的作用。輸入口的恒流源,可以直接驅動MOSFET以及LED。每一個輸入口都可以編程為模擬量輸出狀態,從而在AMUX引腳輸出所選輸入口的電壓。利用MC33993恒流源和模擬量輸出可以組成線性的傳感器檢測電路。ADC芯片選用AD公司生產的并行數據采樣集成芯片AD1674。它從引腳到功能都與AD574/674完全兼容,但內部增加了采樣/保持電路,采樣頻率為100kHZ,并且有全控模式和單一工作模式。其采樣精度可達0.05%,符合高速數據采集的要求。
6.功率器件驅動電路
汽車車身控制系統需要驅動大功率的用電器件,比如照明信號燈,前后雨刮器電機,電動車窗,電動后視鏡等等。功率驅動器件考慮采用MOTOROLA公司的汽車專用功率器件。MC33286為汽車電氣專用智能的雙路控制驅動芯片,與傳統的機械繼電器相比,自身提供過流和過熱保護,響應時間更短,穩定性更高。MC33286設有兩路驅動通道,每路最大工作電流可達15A,通過兩路輸入端口將CPU引腳電平信號引入,經過內部的邏輯處理模塊轉換成輸出通道的電平變化。特別適合信號燈以及阻性負載的驅動。MC33887是帶反饋的H橋型驅動芯片,專用來驅動需要正反轉的電機負載。MC33486與MC33887類似,但內部只有半橋須外加CMOS管以構成全橋驅動電路,穩定輸出可達10 A,尤其適用于電動車窗電機之類的大功率并伴有沖擊電流的正反相控制要求。
三、軟件結構
系統的程序結構分為四個部分:CAN通訊程序(包括應用層協議的SJA1000通訊)、外圍接口程序(所有檢測芯片和驅動芯片的驅動)、中斷服務程序(處理開關信號以及故障報警等消息)、主程序(完成系統初始化和任務調度,喂狗等)。限于篇幅,以下著重介紹 CAN應用層協議。
本系統CAN通訊選用CAN2.0B協議的PeliCAN模式,通信位速率為500Kbps,采用雙驗收濾波器機制。為使用及修改方便,通訊協議中標識碼設計兼容點對點、一對多及廣播通訊模式。開關量消息通訊時各節點間采用主從結構,子節點的報文只有主節點接收(點對點模式),主節點的報文所有子節點均接收(廣播模式)。模擬量消息通訊時各節點間采用點對點模式。
標識符定義:
(1)類名:00000100—應答類消息(自檢應答、故障診斷);00001000—命令類消息;00010000—調試類消息;00100000—下載類消息;01000000<
文章版權歸西部工控xbgk所有,未經許可不得轉載。