基于單片機的CAN總線接口轉(zhuǎn)換卡設(shè)計
控制器局域網(wǎng)(Controller Area Network,簡稱CAN)是德國奔馳公司20世紀(jì)80年代為解決汽車眾多控制設(shè)備與儀器儀表之間的數(shù)據(jù)交換開發(fā)的一種串行通信協(xié)議。它作為現(xiàn)場總線的一種廣泛應(yīng)用于各種工業(yè)現(xiàn)場,根據(jù)不同的需要或以主從方式、或以多主方式工作。CAN總線使用的通信介質(zhì)為雙絞線或其他電纜,傳輸速率可達lMb/s。CAN總線與其他通信網(wǎng)的不同之處有二:一是報文傳送中不包含目標(biāo)地址,它是以全網(wǎng)廣播為基礎(chǔ),各接收站根據(jù)報文中反映數(shù)據(jù)性質(zhì)的標(biāo)識符過濾報文,該收的收下,不該收的棄而不用。其好處是可在線上網(wǎng)下網(wǎng)、即插即用和多站接收;二是特別強化了對數(shù)據(jù)安全性的關(guān)注,滿足控制系統(tǒng)及其他較高數(shù)據(jù)要求的系統(tǒng)需求。鑒于其極高的可靠性、獨特的設(shè)計、高速率和傳輸距離較長等,特別適合于工業(yè)現(xiàn)場監(jiān)控設(shè)備的互連。
2 系統(tǒng)簡介
CAN總線采用總線式網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),如圖l所示。采用CAN總線特有的多主傳送方式,各個分機根據(jù)需要有數(shù)據(jù)時才主動發(fā)送,無需主機不停的輪詢,從而節(jié)省網(wǎng)絡(luò)上的數(shù)據(jù)流量,提高傳輸效率。
現(xiàn)有的監(jiān)控設(shè)備大多采用的是RS一232或RS一485串行通信,為在此基礎(chǔ)上組建CAN通信網(wǎng)絡(luò),筆者設(shè)計了一款便攜式CAN總線接口轉(zhuǎn)換卡,該轉(zhuǎn)換卡可采用鋰電池作為供電電源,功耗低、體積小、重量輕,可滿足便攜式需要。
3 系統(tǒng)硬件結(jié)構(gòu)設(shè)計
德州儀器公司的MSP430系列單片機是一種超低功耗微控制器,電壓范圍為1.8V~3.6V。該處理器通過16位RISC系統(tǒng)、16位CPU、集成寄存器和常量發(fā)生器來獲得最大代碼效率。MSP430系列超低功耗微控制器是應(yīng)用于工業(yè)控制、數(shù)字化電機控制、手持式儀表等設(shè)備中的理想微控制器。本設(shè)計選用MSP430F449型單片機,它具有豐富的片上模塊:最多8路12位A/D轉(zhuǎn)換器、48個I/O端口、2個UART看門狗、2個內(nèi)置16位定時器、可在線仿真的Flash內(nèi)存、7路PWM輸出、LCD驅(qū)動等。
便攜式CAN總線接口轉(zhuǎn)換卡的電氣結(jié)構(gòu)原理框圖如圖2所示,它由電源模塊、CAN通信接口電路、串口電平轉(zhuǎn)換電路、緩存和LCD模塊組成。
3.1 CAN通信接口電路
系統(tǒng)硬件以Philips公司的SJA1000型CAN總線控制器為核心,它是一款獨立的CAN總線控制器,主要用于工業(yè)環(huán)境中。它也是Philips半導(dǎo)體PCA82C200型CAN控制器(Basic CAN)的替代產(chǎn)品,經(jīng)過簡單總線連接的SJA1000可完成CAN總線的物理層和數(shù)據(jù)鏈路層的所有功能。SJA1000由CAN核心模塊、發(fā)送緩沖區(qū)、接口FIFO、驗收濾波器和接口管理邏輯組成。CAN核心模塊主要負(fù)責(zé)CAN信息幀的收發(fā)和CAN協(xié)議的實現(xiàn),接口管理邏輯負(fù)責(zé)SJA1000與主控制器的接口。在進行數(shù)據(jù)傳輸時,主控制器把標(biāo)識符和數(shù)據(jù)送入發(fā)送緩沖區(qū)后請求發(fā)送,從而啟動CAN核心模塊讀取發(fā)送緩存區(qū)中的數(shù)據(jù),再按CAN協(xié)議封裝成完整的CAN信息幀,通過收發(fā)器發(fā)往總線,發(fā)送緩存區(qū)的容量為13字節(jié)。驗收濾波器單元對接收到的信息進行處理后送到接收FIFO中,接收FIFO為64字節(jié)。PCA82C250型CAN總線收發(fā)器是CAN控制器與物理總線之間的接口,它提供了CAN控制器向總線的差動發(fā)送、接收能力。該收發(fā)器依靠引腳8(RS)的不同連接可以選擇3種不同的工作方式:高速、斜率控制和待機方式。通過RS引腳對地連接的電阻器可對總線進行斜率控制,斜率正比于引腳RS上的電流輸出。對于傳輸速率要求較高的應(yīng)用場合,通常將引腳8直接接地以選擇高速方式。在此方式下,發(fā)送器輸出晶體管簡單地以盡可能快的速度啟閉,不采取任何措施限制上升和下降斜率,因此必須采用屏蔽電纜以避免射頻干擾。CAN控制器的發(fā)送和接收端口分別通過1個光電隔離電路與PCA82C250連接,有效地抑制了總線引入的干
擾。
3.2 串口電平轉(zhuǎn)換模塊
在本設(shè)計中,MSP430F449只用1個USART接口,而CAN轉(zhuǎn)換卡集成了RS232、RS485 2個通信模塊,設(shè)計中通過DIP開關(guān)選擇接口類型。RS232和RS485串口電平轉(zhuǎn)換模塊分別選用Maxim公司的MAX3221和MAX3485。
3.3 電源模塊
整個系統(tǒng)除由鋰電池供電外,還可以用小型變壓器等外部電源供電,以滿足不同場合的需求。選用TPS7333作為MSP430F449的穩(wěn)壓電源輸出3.3V的系統(tǒng)供電電壓。為保證數(shù)據(jù)正常傳輸,電源電路中還配有bq24012型電池充電管理電路,以便在電池電量較低、可能會影響正常數(shù)據(jù)傳輸時及時報警,提醒更換電池或充電。
3.4 緩存和LCD模塊
為了節(jié)省PC的工作時間,設(shè)計時用TMS44400型動態(tài)存儲器擴展動態(tài)存儲區(qū)間,傳輸數(shù)據(jù)時首先讀取報頭信息以決定是實時傳輸還是緩存操作。MSP430F449帶有液晶驅(qū)動模塊,設(shè)計中選用東顯公司的EDS805型液晶顯示模塊,用它實時顯示系統(tǒng)的狀態(tài)特性、數(shù)據(jù)的傳輸速度、剩余時間等,它還可以進行電源欠壓報警。
4 軟件設(shè)計
MSP430的內(nèi)核結(jié)構(gòu)采用具有高透明格式的精簡指令(RSIC)設(shè)計。CAN信息的接收和發(fā)送一樣,是由CAN控制器自動完成的,程序只需從相應(yīng)的緩存器中讀取相應(yīng)的數(shù)據(jù),再進行相應(yīng)的處理即可。在此系統(tǒng)中,單片機完成初始化任務(wù)后進入低功耗睡眠狀態(tài),任一中斷均可將其喚醒,轉(zhuǎn)而執(zhí)行相應(yīng)的中斷服務(wù)子程序。系統(tǒng)的2個中斷源分別為PC串口發(fā)送和下位機CAN信息接收,這樣做的好處是盡可能地避免由于數(shù)據(jù)超限而引起的數(shù)據(jù)重發(fā)。圖3示出系統(tǒng)CAN初始化流程,圖4示出發(fā)送中斷服務(wù)程序流程。由于篇幅關(guān)系,本文略去接收中斷服務(wù)程序流程,其流程大致與發(fā)送流程相反。
5 結(jié)束語
本文介紹了CAN總線通信接口轉(zhuǎn)換卡的軟硬件設(shè)計,期望給研究CAN總線應(yīng)用的設(shè)計人員提供一些借鑒和幫助。所介紹的CAN總線通信接口轉(zhuǎn)換卡的結(jié)構(gòu)簡單且抗干擾能力強,非常適用于構(gòu)成中小型分布式測控網(wǎng)絡(luò)。隨著支持CAN協(xié)議的器件不斷增多,CAN器件的價格會進一步降低,在自動化領(lǐng)域中的應(yīng)用也會越來越廣泛。
評論