(1)CAN總線兩端接有一個(gè)120Ω的電阻,其作用是匹配總線阻抗,提高數(shù)據(jù)通信的抗干擾性及可靠性。但實(shí)際上只需保證CAN網(wǎng)絡(luò)中“CAN_H”和“CAN_L”之間的跨接電阻為60Ω即可。
(2)SJAl000的20引腳RXl在不使用時(shí)可接地,配合CDR.6的置位可使總線長度大大增加。
(3)引腳TX0,TXl的接法決定了串行輸出的電平。具體關(guān)系可參考輸出控制寄存器OCR的設(shè)置。
(4)AT82C250的RS引腳與地間接有1個(gè)斜率電阻。電阻大小可根據(jù)總線通信速度作適當(dāng)調(diào)整,一般在16~140kΩ之間。
(5)MAX232外圍需要4個(gè)電解電容C1,C2,C3,C4,這些電容也是內(nèi)部電源轉(zhuǎn)換所需電容,其取值均為1μF/25V,宜選用鉭電容并且位置應(yīng)用量靠近芯片,電源Vcc和地之間要接1個(gè)0.1μF的去耦電容。
在微處理控制下,RS232和CAN進(jìn)行數(shù)據(jù)交換時(shí),采用串口接收和CAN中斷方式可提高工作效率。SJAl000的初始化在復(fù)位模式下才可以進(jìn)行,主要包括工作方式的設(shè)置、時(shí)鐘分頻和驗(yàn)收濾波寄存器的設(shè)置、波特率參數(shù)的設(shè)置以及中斷允許寄存器的設(shè)置等。其主程序流程圖如圖3所示。

數(shù)據(jù)能否準(zhǔn)確傳遞還取決于波特率和流量控制,這也是軟件設(shè)計(jì)時(shí)不可忽略的地方。因此接下來主要介紹CAN波特率的設(shè)置、串口波特率的自動(dòng)檢測(cè)、串口數(shù)據(jù)流量控制。
CAN協(xié)議中的要素之一是波特率??梢栽O(shè)置位周期中的位采樣點(diǎn)位置和采樣次數(shù),以使可以自由地優(yōu)化應(yīng)用網(wǎng)絡(luò)性能,但在優(yōu)化過程中,要注意位定時(shí)參數(shù)基準(zhǔn)參考振蕩器的容差和系統(tǒng)中不同信號(hào)傳播延遲之間的關(guān)系。










