基于SJA1000的CAN總線系統(tǒng)節(jié)點(diǎn)仿真平臺(tái)的實(shí)現(xiàn)
控制器局域網(wǎng)(CoNtroller Area Network,CAN),是德國(guó)Bosch 公司為汽車(chē)的監(jiān)控系統(tǒng)而設(shè)計(jì)的總線式串行通信網(wǎng)絡(luò),它具有良好的組網(wǎng)靈活性、開(kāi)放性、擴(kuò)展性和兼容性,它的抗干擾、自診斷、自監(jiān)控和糾錯(cuò)能力強(qiáng),可靠性高,它的協(xié)議模型結(jié)構(gòu)簡(jiǎn)單,實(shí)時(shí)性好,性?xún)r(jià)比高,便于開(kāi)發(fā),它是目前唯一有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,它的應(yīng)用范圍已經(jīng)遠(yuǎn)遠(yuǎn)超出汽車(chē)監(jiān)控系統(tǒng),它適用于許多領(lǐng)域中分布式自動(dòng)控制系統(tǒng),如:工業(yè)過(guò)程控制和自動(dòng)化,智能結(jié)構(gòu)和分布管理等,成為很有推廣普及應(yīng)用潛力的現(xiàn)場(chǎng)總線。
為便于CAN總線在不同領(lǐng)域的推廣普及應(yīng)用,研制一種通用的CAN總線系統(tǒng)基本組成單元DD節(jié)點(diǎn)的仿真平臺(tái),通過(guò)仿真使研究開(kāi)發(fā)CAN總線系統(tǒng)的成本和周期降低,這是很有實(shí)際應(yīng)用價(jià)值的。
本仿真平臺(tái)選用Philips公司的SJA1000芯片作為CAN控制器,它除了具有基本CANPCA82C200芯片標(biāo)準(zhǔn)模式的所有功能外,更增加了一種新的工作模式DPeliCAN模式,這種模式支持具有很多新特性的CAN2.0B協(xié)議,如:兼容性和擴(kuò)展性更強(qiáng),檢錯(cuò)和糾錯(cuò)能力更強(qiáng),支持熱插拔等,設(shè)計(jì)更方便靈活,而芯片價(jià)格低廉,很適合作通用的CAN總線系統(tǒng)節(jié)點(diǎn)仿真平臺(tái)之用。
為了適應(yīng)多種不同領(lǐng)域的自動(dòng)控制系統(tǒng)仿真需要,可采用普通PC機(jī)作為各種不同的自動(dòng)控制系統(tǒng)的傳感器、執(zhí)行器和人機(jī)鍵控和顯示接口的仿真器,形成仿真平臺(tái),提高節(jié)點(diǎn)的通用性,靈活性和可擴(kuò)展性。通過(guò)仿真PC機(jī)可模擬各種不同應(yīng)用系統(tǒng)。
仿真平臺(tái)的硬件設(shè)計(jì)
所設(shè)計(jì)的CAN總線系統(tǒng)節(jié)點(diǎn)仿真平臺(tái)硬件系統(tǒng)框圖如圖1所示。
圖1CAN總線系統(tǒng)節(jié)點(diǎn)仿真平臺(tái)
總線系統(tǒng)采用價(jià)格低廉而安裝方便的雙絞線作為通信介質(zhì),將各節(jié)點(diǎn)聯(lián)接成網(wǎng)絡(luò)系統(tǒng)。每個(gè)節(jié)點(diǎn)由CAN控制器、CAN收發(fā)器、微處理器和仿真PC機(jī)四個(gè)功能模塊組成。
CAN控制器SJA1000作為核心,執(zhí)行CAN協(xié)議,包括數(shù)據(jù)的成幀和解幀以及幀的收發(fā)等等。
由于SJA1000的總線驅(qū)動(dòng)能力有限,它通過(guò)CAN收發(fā)器PCA82C250芯片與物理總線聯(lián)接起來(lái)。CAN收發(fā)器將來(lái)自CAN控制器的邏輯電平信號(hào)轉(zhuǎn)換成適合在CAN總線上傳輸且能被CAN收發(fā)器接收的邏輯電平信號(hào),起到抗瞬間干擾和射頻干擾,增大通信距離和保護(hù)總線等作用;為了進(jìn)一步增強(qiáng)抗干擾能力,在SJA1000與PCA82C250之間,可用高速光電耦合器6N137實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)間的電平隔離。
CAN控制器和收發(fā)器配合完成CAN協(xié)議中物理層和數(shù)據(jù)鏈路層的通信協(xié)議功能。微處理器89C51控制SJA1000的功能,包括初始化和監(jiān)控管理,實(shí)現(xiàn)數(shù)據(jù)的收發(fā)通信,執(zhí)行應(yīng)用層功能。
仿真PC機(jī)通過(guò)串口芯片MAX232實(shí)現(xiàn)與微處理器之間的電平轉(zhuǎn)換和通信,從而實(shí)現(xiàn)與CAN總線通信。PC機(jī)可作為各種不同的自動(dòng)控制系統(tǒng)的傳感器、執(zhí)行器和人機(jī)鍵控和顯示接口的仿真器,形成仿真平臺(tái),提高節(jié)點(diǎn)的通用性,靈活性和可擴(kuò)展性。通過(guò)仿真PC機(jī)可模擬各種不同的應(yīng)用系統(tǒng)。
仿真平臺(tái)的軟件設(shè)計(jì)(圖2)
軟件設(shè)計(jì)主要是對(duì)微處理器進(jìn)行應(yīng)用編程,實(shí)現(xiàn)SJA1000的初始化(包括工作模式、濾波器、中斷使能寄存器等初始值的設(shè)置),監(jiān)控管理和鍵控顯示。微處理器采用中斷工作模式,使響應(yīng)速度提高,支持系統(tǒng)實(shí)時(shí)性。中斷流程如圖2。
圖2 中斷流程圖
軟件設(shè)計(jì)的核心是微處理器與CAN控制器之間的數(shù)據(jù)通信。最終實(shí)現(xiàn)CAN網(wǎng)絡(luò)節(jié)點(diǎn)間的數(shù)據(jù)通信。編程采用模塊化方式,方便修改、升級(jí)和調(diào)試,支持系統(tǒng)靈活性、開(kāi)放性和可擴(kuò)展性。
小結(jié)
本文的基于SJA1000的CAN總線系統(tǒng)節(jié)點(diǎn)仿真平臺(tái),經(jīng)測(cè)試得,可實(shí)現(xiàn)兩個(gè)節(jié)點(diǎn)間的數(shù)據(jù)正確的發(fā)送和接收,并實(shí)現(xiàn)了節(jié)點(diǎn)和仿真PC機(jī)之間的通信以及鍵控輸入、數(shù)據(jù)顯示等功能。它的硬件結(jié)構(gòu)簡(jiǎn)單價(jià)廉,軟件靈活,易修改、升級(jí)和進(jìn)一步組網(wǎng)等的開(kāi)發(fā),通過(guò)仿真PC機(jī)可模擬各種不同應(yīng)用系統(tǒng)。通過(guò)仿真使研究開(kāi)發(fā)CAN總線系統(tǒng)的成本和周期降低,該仿真平臺(tái)為CAN總線系統(tǒng)在汽車(chē)及其它多種不同領(lǐng)域的自動(dòng)控制系統(tǒng)中推廣應(yīng)用,提供了方便的研究開(kāi)發(fā)條件,為CAN的普及和提高提供了有益的參考實(shí)例。
評(píng)論