TI 2803x DSP芯片LIN通信之波特率自適應

將SCIGCR1寄存器中的ADAPT位置1來使能波特率自適應功能,在幀頭接收期間,從機節點利用同步場可以測量出波特率。SCI/BLIN同步器在幀頭接收期間會確定兩個計數器:BRK_count和BAUD_count。

LIN標準協議規定11個Tbit作爲從機節點檢測間隙場的門限值(間隙場至少爲13個Tbit的顯性)。在第五個連續的下降沿,BAUD_count可以被測量出,至此,從機節點可以計算出Tbit,即BAUD_count/8,或者BAUD_count>>3。檢測到的波特率可以通過上述Tbit獲得,用戶編程的波特率可以通過波特率配置寄存器獲得。

MBRS用於測量BRK_count和BAUD_count,並且自動適應任何允許的LIN總線波特率。檢測間隙場時,由於該部分始終爲顯性電平,無電平變化,BRK_count用到的Tbit莫非就是MBRS對應的Tbit,即20kbps?

如果在給定的容差範圍內,同步場未檢測到,不匹配的同步場錯誤(ISFE)標誌會被置位。如果ISFE中斷使能,則會觸發ISFE中斷。一旦一個有效的間隙場(超過11個Tbit)被檢測到,接收器的狀態機會復位至接收該新幀,這種復位條件僅在響應狀態有效,在幀頭接收過程中,如果出現額外的間隙場,不應出現復位。

------------------------------------------------------------------------------------------------------------------

上述爲理論部分,後面做了個LIN波特率自適應的測試,開啓波特率自適應功能後,波特率配置寄存器BRSR中的值會根據檢測結果而變化。但是發現其可靠性並不好,容易出錯,測試結果如下圖所示,剛開始會偶爾出錯,通信一段時間後,通信甚至會斷掉,不過也有可能是程序沒寫好的原因。

參考文獻:

TMS320F2803x Piccolo Local Interconnect Network (LIN) Module User's Guide (Literature Number: SPRUGE2B)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章