基于VT100的CAN現(xiàn)場總線系統(tǒng)在線調(diào)試技術(shù)
掃描二維碼
隨時隨地手機看文章
控制器局域網(wǎng)(Controller Area Network,簡稱CAN)是一種支持分布式和實時控制的串行通信網(wǎng)絡(luò),其主要特點是采用多主方式工作,基于報文ID并采用非破壞總線仲裁技術(shù)進行優(yōu)先權(quán)仲裁,串行通信,事件觸發(fā)型,大大減少線束的數(shù)量。CAN總線協(xié)議最初是由德國BOSCH公司于20世紀80年代提出并用于汽車目的,1993年形成國際標準ISO 11898-1。[1][2] 由于其高性能、高可靠性及獨特的設(shè)計,CAN越來越收到人們的重視,已經(jīng)廣泛應(yīng)用于汽車電子控制、過程工業(yè)、機械工業(yè)、紡織機械、農(nóng)用機械、機器人、數(shù)控機床、醫(yī)療器械、家用電器及傳感器等領(lǐng)域發(fā)展,并已被公認為幾種最有前途的現(xiàn)場總線之—。
Microchip公司的PIC18F458是集成有CAN控制器的8位Flash單片機,遵循CAN2.0B協(xié)議。在為某公司開發(fā)的車載CAN總線儀表盤系統(tǒng)中,采用PIC18F458和TJA1050構(gòu)建了一個多結(jié)點的CAN網(wǎng)絡(luò),用于采集傳感器信息并驅(qū)動對應(yīng)的儀表顯示。在系統(tǒng)開發(fā)過程中,為了便于調(diào)試并檢測每一個結(jié)點的狀態(tài),采用了每一個結(jié)點配置一塊LCD用于相關(guān)信息的顯示和運行情況跟蹤。由于LCD的控制需要占用MCU的端口;并且,最終的系統(tǒng)并不需要LCD接口。因此,為了方便系統(tǒng)調(diào)試及故障診斷,需要采用一種簡便易行且不影響最終產(chǎn)品功能的調(diào)試方法。如能直接利用PC機的顯示器作為調(diào)試信息的輸出終端,將大大減少嵌入式目標系統(tǒng)開發(fā)過程中的準備工作量。文獻[3]提出了一種在WINDOWS環(huán)境中利用超級終端技術(shù)顯示嵌入式系統(tǒng)信息的方法,文獻[4]介紹了在網(wǎng)管系統(tǒng)中采用VT100終端技術(shù)對網(wǎng)絡(luò)進行管理的有關(guān)技術(shù),但如何以較低的成本方便地調(diào)試多結(jié)點的嵌入式系統(tǒng),則未見相關(guān)的文獻報道。在WINDOWS2000/XP環(huán)境下,采用VT100超級終端和RS232串行通信技術(shù),通過在嵌入式目標系統(tǒng)內(nèi)編制簡單的接口軟件就可以方便對多結(jié)點的嵌入式系統(tǒng)進行調(diào)試和診斷。
2.車載CAN總線儀表盤系統(tǒng)網(wǎng)絡(luò)的結(jié)構(gòu)
基于CAN的車用儀表系統(tǒng)主要要求完成以下兩項功能:(1)采集車身開關(guān)狀態(tài),并通過CAN總線傳輸至儀表板上顯示;(2)采集發(fā)動機狀態(tài)信息,包括發(fā)動機轉(zhuǎn)速,機油壓力,水溫,油溫等,并通過CAN總線傳輸至儀表板上控制相應(yīng)的儀表顯示。由于與車身狀態(tài)有關(guān)的開關(guān)位置較分散,因此,需要多個結(jié)點參與完成數(shù)據(jù)的采集?;贑AN總線的車用儀表系統(tǒng)的拓撲結(jié)構(gòu)如圖1所示。
圖1中,雙點劃框中的部分為基于VT100的在線調(diào)試檢測模塊,框外部分為實際運行中的系統(tǒng)。由圖1可以看出,利用CAN總線和VT100終端技術(shù),可以將PC機或筆記本電腦看作是整個嵌入式系統(tǒng)的監(jiān)控臺,因而可以充分利用WINDOWS豐富的軟硬件資源,方便地實現(xiàn)對系統(tǒng)的監(jiān)控。
3.VT100控制序列
VT100最初是由DEC公司于1978開發(fā)出來的一種物理終端(鍵盤,顯示器等),可解釋執(zhí)行ANSI X3.64控制碼,后來被IBM的PC機所采用,目前在PC機上有功能相同的仿真模擬軟件可用。
VT100 可根據(jù)控制命令發(fā)送或顯示相應(yīng)的字符,主機可以控制VT100 顯示器上光標的移動、顯示模式、字體屬性的變化等。VT100的控制命令分兩種:控制字符和控制序列[5]。
VT100的控制字符的ASCII碼值(八進制表示)為000~037和177,可以完成換行(LF) 、使終端停止或重新發(fā)送數(shù)據(jù)(XOFF/XON)等,如表1所示。
VT100的控制序列遵循Digital標準和ANSI標準。而在當今的應(yīng)用中,大部分都使用ANSI標準中的有關(guān)內(nèi)容。這是一種被稱為ESC序列的控制序列碼,它的特點是在每條控制序列的開頭都有1 個控制序列引導符CSI,在VT100中是ESC。表2 給出了VT100中常用的ESC命令序列。[!--empirenews.page--]
4.運行實例
PIC18F458通過串行接口USART與PC通信的硬件電路如圖2所示,在PC屏幕上顯示的有關(guān)CAN通信的數(shù)據(jù)如圖3所示,每行顯示的內(nèi)容依次為在CAN總線上傳送幀信息的報文ID,每幀信息的8個字節(jié)的數(shù)據(jù),由這些信息可以測試構(gòu)成網(wǎng)絡(luò)的各個結(jié)點是否正常工作,收發(fā)的數(shù)據(jù)是否滿足預期的設(shè)計目標,實現(xiàn)了網(wǎng)絡(luò)傳輸數(shù)據(jù)的可視化,大大地方便了CAN應(yīng)用系統(tǒng)的調(diào)試,減少了系統(tǒng)的硬件復雜程度。
5.結(jié)論
利用WINDOWS環(huán)境下的超級終端程序VT100可方便實現(xiàn)對基于CAN總線系統(tǒng)的在線監(jiān)控和診斷,并且不影響原有系統(tǒng)的結(jié)構(gòu),在實際應(yīng)用中有效地改善了開發(fā)效率,下一步的工作是參照VT100的控制序列,開發(fā)功能完善的基于PC的嵌入式系統(tǒng)的在線監(jiān)控系統(tǒng)。