基于HCS12和模擬器件的工業(yè)CAN I/O模塊設(shè)計
工業(yè)CAN I/O模塊包含8個模擬輸入、16個數(shù)字輸入、16個數(shù)字輸出,以及一個兼容高速CAN收發(fā)器2.1 A/B的控制器和可選的RS232/RS485收發(fā)器。該方案基于飛思卡爾的16位MC9S12DP256微控制器單元。CAN物理收發(fā)器有兩個可行的替代產(chǎn)品,為容錯CAN接口MC33388,或帶多輸出電源的高速CAN MC33394。CAN接口與 ISO 11898兼容,允許最大數(shù)據(jù)速率為500kbps。 數(shù)字輸入采用開關(guān)監(jiān)視接口MC33884芯片,數(shù)字輸出用低端功率開關(guān)器件MC33298實現(xiàn)。
本文討論的模塊可以用作高層通信協(xié)議軟件開發(fā)的硬件平臺。另外,該模塊可以用于用戶軟件的實現(xiàn)和測試?;谶@一目的,電路板需要配備重新編程和調(diào)試用的后臺調(diào)試模式(BDM)接口。工業(yè)CAN I/O模塊從邏輯上分成基板、電源和I/O板三個基本電路板。板與板之間的數(shù)據(jù)傳送由串行外設(shè)接口(SPI)協(xié)議保證。
基板的組成
工業(yè)CAN I/O模塊中基板的主要功能是對模塊實施控制,并與系統(tǒng)控制單元進(jìn)行通信?;迮鋫溆?個模擬通道?;鍙倪壿嬌嫌挚梢苑殖晌⒖刂破髂K、CAN接口、模擬輸入和RS232_485接口4個模塊。
a.微控制器模塊
16 位MC9S12DP256微控制器單元(MCU)是基板的主要組成部分。工業(yè)CAN I/O模塊使用了內(nèi)嵌于MCU 的5個CAN外設(shè)之一(CAN0)。根據(jù)BOSCH規(guī)范的定義,該外設(shè)是一個用于實現(xiàn)CAN 2.0A/B協(xié)議的通信控制器。CAN外設(shè)是MSCAN(摩托羅拉可伸縮CAN)的一種特定實現(xiàn)。它使用了2個外部引腳,一個輸入(RxCAN0)和一個輸出(TxCAN0)通過CAN收發(fā)器與CAN總線進(jìn)行通信。一個輸出信號用于實現(xiàn)對CAN收發(fā)器芯片的控制。
如上所述,板之間的數(shù)據(jù)傳送是由SPI協(xié)議保證的。SPI模塊可以實現(xiàn)MCU與外設(shè)之間的全雙工串行通信。工業(yè)CAN I/O模塊使用了MCU的3個SPI外設(shè)中的一個(SP0)。該 SPI可以被配置為主模式或從模式。SPI0外設(shè)必須選擇主模式,因為只有主SPI才能發(fā)起到外設(shè)的傳送。
工業(yè)CAN I/O模塊使用了內(nèi)嵌于MCU的兩個8通道模數(shù)轉(zhuǎn)換器中的一個(AN0)。A/D模塊執(zhí)行模擬到數(shù)字的轉(zhuǎn)換,該模塊包含了簡單模數(shù)轉(zhuǎn)換所必需的模塊和數(shù)字電子電路。A/D轉(zhuǎn)換器的分辨率(8位或10 位)是可編程選擇的。在工作電壓為5V時,模塊可以接受5V輸入而不會導(dǎo)致永久性損壞。
基板上有一個8位DIP開關(guān),用于配置節(jié)點地址(節(jié)點識別號)以及CAN速度。與主機開發(fā)系統(tǒng)的單線通信是通過用片上硬件實現(xiàn)的BDM系統(tǒng)完成,與目標(biāo)系統(tǒng)的連接通過標(biāo)準(zhǔn)的6引腳BDM連接器實現(xiàn)。
b.CAN接口
每個 CAN節(jié)點是通過收發(fā)器芯片實現(xiàn)與CAN總線的物理連接。收發(fā)器能夠驅(qū)動CAN總線所需要的大電流,并具有隔離故障CAN或故障站的電流保護(hù)功能?;迳系腃AN收發(fā)器有兩個可選項:一個是使用容錯CAN接口MC33388;另一個使用MC33394器件的高速CAN收發(fā)器部分。模塊使用MC33394器件的高速CAN收發(fā)器部分,同時也是電源板的一部分。
c.模擬輸入
模塊共提供了8個模擬通道。在每個模擬通道的輸入部分都有一個衰減斜率是-40dB/dec、截止頻率為1kHz的無源低通濾波器。輸入濾波器用于濾除在采樣之前引入的高頻噪聲和干擾。模擬通道可以被配置為電壓或電流模式。250歐姆電阻為4到20mA的電流環(huán)路提供電流檢測和實用的過流保護(hù)。模擬通道的電壓輸入如信號的范圍是0到10V、0到5V以及-5V到+5V、-2.5V到+2.5V,電流范圍是4到20mA。輸入范圍由微控制器控制。
d.RS232_485接口
基板提供了一個用于連接PC或類似主機的RS232接口,以及一個用于工業(yè)應(yīng)用的RS485接口。
電源板
電源板能夠提供工業(yè)CAN I/O模塊所需的所有電源。
電源板的主器件是一個帶高速CAN收發(fā)器的多輸出電源集成電路PC33394。該器件內(nèi)置有開關(guān)型整流器,可提供預(yù)調(diào)節(jié)的輸出,后面緊跟一個低壓降輸出 (LDO)調(diào)節(jié)器。并應(yīng)用并沒有用到PC33394的全部功能。內(nèi)部開關(guān)調(diào)節(jié)器集成了實現(xiàn)降壓/生壓整流器的電路。該電路眼板上只實現(xiàn)了降壓調(diào)節(jié)器?;貟咿D(zhuǎn)換器提供對稱的電壓為模塊的模擬通道供電。變壓器輸出電壓經(jīng)整流后由線性穩(wěn)壓器產(chǎn)生一對稱的+12V、-12V輸出電壓。
高速CAN收發(fā)器的物理層將微控制器的CMOS輸出及差分總線相接。CAN驅(qū)動器具有短路保護(hù)功能,可以容許失去電池或接地條件。
I/O板
I/O板提供16個數(shù)字輸入和16個數(shù)字輸出。I/O板通過連接器連接到基板。從邏輯上I/O板可以分成數(shù)字輸入和數(shù)字輸出兩個基本模塊。
a.輸入模塊
板上有2個開關(guān)監(jiān)測接口器件MC33884,它們提供了電子開關(guān)和微控制器之間的接口。MC33884監(jiān)測系統(tǒng)中使用的多個外部開關(guān)的開/關(guān)狀態(tài)。該器件提供開關(guān)觸點的上拉和下拉電流,同時監(jiān)測輸入電壓電平。所有輸入電路都能防止輸入端使用的靜態(tài)放電電容引起的瞬態(tài)。
MC33884可運行在以下4種模式中的一種:睡眠、正常、輪詢和輪詢+INT定時器。所有工作模式都可以通過SPI控制進(jìn)行編程,SPI命令的響應(yīng)將返回開關(guān)狀態(tài)和模式設(shè)置。
該模塊使用4個可編程開關(guān)到地或電池感應(yīng)輸入,以及每個MC33884的4個開關(guān)到地的感應(yīng)輸入。板上的MC33884以并行方式配置使用。
b.輸出模塊
板上的2個低端電源開關(guān)MC33298能使MCU直接控制各種感性或白熱負(fù)載。板上的器件也可通過SPI控制進(jìn)行編程,并以并行配置方式使用。SPI命令的響應(yīng)將返回器件輸出開關(guān)的狀態(tài)。發(fā)光二極管D1到D16也反映器件的輸出開關(guān)狀態(tài)。LED閃爍表示開狀態(tài)。
應(yīng)用介紹
設(shè)計工業(yè)CAN I/O板樣板的目的是要展示模塊在利用CAN連接性的主要特性。對于msCAN外設(shè)模塊來說,msCAN驅(qū)動程序軟件已成功用來創(chuàng)建初始化和可讀性更高的應(yīng)用例程,而總的循環(huán)時間能夠得到顯著減少。
表1:所有的事件描述
事件描述 |
發(fā)起者 |
接收者 |
模擬輸入模塊參數(shù)(范圍和準(zhǔn)確度)的變化 | 上級器件 | CAN I/O |
模擬輸入模塊狀態(tài)值 | CAN I/O | 上級器件 |
設(shè)置I/O板新的數(shù)字輸出值 | 上級器件 | CAN I/O |
I/O板數(shù)字輸入值的狀態(tài) | CAN I/O | 上級器件 |
因為狀態(tài)變化的I/O板數(shù)字輸入值的狀態(tài) | CAN I/O | 上級器件 |
模塊從上層器件接收配置信息,并返回輸入/輸出的狀態(tài),表1列出了模塊的所有事件。工業(yè)CAN I/O模塊參考設(shè)計提供了基于飛思卡爾HCS12和APD器件的工業(yè)CAN的應(yīng)用描述,可以參看飛思卡爾網(wǎng)站。