對CAN位定時(shí)計(jì)算的另一個(gè)很重要的時(shí)間段是同步跳轉(zhuǎn)寬度(SJW),持續(xù)時(shí)間是tSJW。SJW段并不是位周期的一段,只是定義了在重同步事件中被增長或縮短的位周期的最大TQ數(shù)量。此外,CAN協(xié)議還允許用戶指定位采樣模式(SAM),分別是單次采樣和三次采樣模式(在3個(gè)采樣結(jié)果中選出1個(gè))。在單次采樣模式中,采樣點(diǎn)在TESG1段的末端。而三次采樣模式比單次采樣多取兩個(gè)采樣點(diǎn),它們在TSEGl段末端的前面,之間相差一個(gè)TQ。上面所提到的BPR,SJW,SAM,TESGl,TESG2都可由用戶通過CAN控制器的內(nèi)裝中寄存器BTR0和BTRl來定義。設(shè)置好BTR0和BTRl后,實(shí)際傳輸?shù)牟ㄌ芈史秶鸀椋鹤畲?1/(tbit-tSJW),最小=1/(tbit+tSJW)。
檢測轉(zhuǎn)換裝置的串口波特率,首先可對主機(jī)的接收波特率(以9600b/s為例)進(jìn)行設(shè)定,并在終端發(fā)送一個(gè)特定的字符(以回車符為例),這樣,主機(jī)根據(jù)接收到的字符信息就可以確定轉(zhuǎn)換裝置的通信波特率。回車符的ASCII值是0DH,在不同波特率下接收到的值如表1所列。

數(shù)據(jù)在兩個(gè)串口之間的傳輸時(shí),常常會出現(xiàn)丟失數(shù)據(jù)的現(xiàn)象。由于單片機(jī)緩沖區(qū)有限,如接收數(shù)據(jù)時(shí)緩沖區(qū)已滿,那么此時(shí)繼續(xù)發(fā)送來的數(shù)據(jù)就會丟失。而流控制能有效地解決該問題,當(dāng)接收端數(shù)據(jù)處理不過來時(shí),流控制系統(tǒng)就會發(fā)出“不再接收”的信號,而使發(fā)送端停止發(fā)送,直到收到“可以繼續(xù)發(fā)送”的信號再發(fā)送數(shù)據(jù)。因此流控制可以控制數(shù)據(jù)傳輸?shù)倪M(jìn)程,防止數(shù)據(jù)丟失。常用的兩種流控制是硬件流控制(包括RTS/CTS,DTR/CTS等)和軟件流控制XON/XOFF(繼續(xù)/停止),下面僅就硬件流控制RTS/CTS加以說明。










