基于C8051F550的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)
摘要:簡(jiǎn)單介紹了CAN總線的特點(diǎn)與構(gòu)成。詳細(xì)介紹了主節(jié)點(diǎn)的工作過程和從節(jié)點(diǎn)硬件接口電路的搭建方法,并通過對(duì)微處理器的軟件編程,實(shí)現(xiàn)了CAN總線網(wǎng)絡(luò)的實(shí)時(shí)通信。整個(gè)節(jié)點(diǎn)通信系統(tǒng)工作穩(wěn)定,可以滿足現(xiàn)場(chǎng)環(huán)境要求。
關(guān)鍵詞:CAN總線;USB—CAN適配器;C8051F550;智能節(jié)點(diǎn)
CAN總線最早是德國(guó)的BOSCH公司為解決汽車的監(jiān)測(cè),控制系統(tǒng)而設(shè)計(jì)的。現(xiàn)在,已由汽車行業(yè)擴(kuò)展到過程工業(yè),機(jī)械工業(yè),機(jī)器人和樓宇自動(dòng)化等領(lǐng)域??偨Y(jié)各個(gè)領(lǐng)域中的應(yīng)用實(shí)例,CAN通信設(shè)計(jì)的關(guān)鍵在于各個(gè)通信模塊的設(shè)計(jì)與實(shí)現(xiàn)。通信信號(hào)一般有模擬量輸入/輸出(電壓電流采集模塊),開關(guān)量輸入\輸出,數(shù)字量輸入\輸出(如計(jì)數(shù)器模塊)等。本文重點(diǎn)就模擬量輸入模塊和開關(guān)量輸入模塊的設(shè)計(jì),采用具有CAN接口的C8051F550單片機(jī)作為系統(tǒng)設(shè)計(jì)的從節(jié)點(diǎn),用來采集模擬量和開關(guān)量,實(shí)現(xiàn)與上位機(jī)中央控制器的通信。
1 CAN總線通信網(wǎng)絡(luò)系統(tǒng)
如圖1所示,本設(shè)計(jì)中通過帶有終端器(120歐電阻)的通信介質(zhì)(雙絞線)將上位機(jī)和底層模塊連接起來。實(shí)驗(yàn)中,終端電阻和雙絞線阻抗的匹配確保了數(shù)據(jù)信號(hào)不會(huì)在總線的兩端反射。上位機(jī)(主節(jié)點(diǎn))采用USB—CAN接口適配器(型號(hào)GYB507),使PC機(jī)直接通過USB接口就可連入CAN總線網(wǎng)絡(luò),成為一個(gè)標(biāo)準(zhǔn)的CAN節(jié)點(diǎn)。配合總線通信測(cè)試軟件CANtool的使用,可直接配置PC機(jī)的發(fā)送與接收狀態(tài),通信速率和報(bào)文濾波功能等。同時(shí),還可實(shí)時(shí)監(jiān)測(cè)顯示網(wǎng)絡(luò)中各從節(jié)點(diǎn)與PC機(jī)的數(shù)據(jù)通信,應(yīng)用簡(jiǎn)單、方便。
2 智能節(jié)點(diǎn)硬件設(shè)計(jì)
傳統(tǒng)的從節(jié)點(diǎn)設(shè)計(jì)是將CPU與CAN總線控制器和總線收發(fā)器相連后再連入總線網(wǎng)絡(luò),這樣使CPU外圍電路復(fù)雜化,整個(gè)系統(tǒng)受外部影響較大。為了解決這一問題,很多單片機(jī)廠商都將CAN控制器集成在單片機(jī)上。本文中選用C8051F550該單片機(jī),它是內(nèi)部集成的CAN控制器,完全按照BoshchCAN全功能的CAN模塊實(shí)現(xiàn),符合CAN2.0B協(xié)議,工作位速率可達(dá)1Mpbs。控制器包含有一個(gè)CAN內(nèi)核,消息緩沖區(qū),報(bào)文處理狀態(tài)機(jī)和CAN控制寄存器。通信控制器有32個(gè)消息對(duì)象,可以配置為發(fā)送或接收數(shù)據(jù)。輸入數(shù)據(jù),消息對(duì)象及其標(biāo)識(shí)符存儲(chǔ)在CAN消息緩沖區(qū)中,能實(shí)現(xiàn)CAN協(xié)議的數(shù)據(jù)鏈路層的全部功能及物理層大部分功能。CIP-51CPU可通過特殊功能寄存器直接或間接訪問CAN控制寄存器(CANOCN),測(cè)試寄存器(CANOTST)和狀態(tài)寄存器(CANOSTA)。所有其它寄存器只能通過CANOADR,CANODATH和CANOTAL寄存器以地址索引方式間接訪問。
評(píng)論