ADuC703x系列LIN波特率計(jì)算
簡(jiǎn)介
本文引用地址:http://www.ex-cimer.com/article/185754.htm本應(yīng)用筆記旨在讓用戶熟悉用于ADI公司ADuC703x系列器件UART通信的除數(shù)值COMDIV0、COMDIV1和COMDIV2的計(jì)算。本應(yīng)用筆記假定用戶熟悉本地互連網(wǎng)絡(luò)(LIN) 2.0規(guī)范。
本文分為以下三部分:
● LIN幀報(bào)頭:本部分說(shuō)明LIN幀報(bào)頭和同步字節(jié)。
● LIN波特率計(jì)算:本部分說(shuō)明一種使用LIN硬件同步(LHS)功能來(lái)計(jì)算UART除數(shù)值的方法。
● LIN波特率計(jì)算C代碼示例:本部分提供LIN波特率計(jì)算部分所述計(jì)算的C代碼實(shí)現(xiàn)示例。
LIN幀報(bào)頭
標(biāo)準(zhǔn)LIN通信幀如圖1所示,它分為如下部分:斷開(kāi)符號(hào)、同步字節(jié)、受保護(hù)標(biāo)識(shí)符、數(shù)據(jù)和校驗(yàn)和。
圖1. LIN幀
●斷開(kāi)符號(hào)表示LIN分包的開(kāi)始。
●同步字節(jié)標(biāo)定從機(jī)的波特率。
●受保護(hù)標(biāo)識(shí)符用于識(shí)別從機(jī)。
●校驗(yàn)和既可以是根據(jù)發(fā)送數(shù)據(jù)計(jì)算的傳統(tǒng)校驗(yàn)和,也可以是根據(jù)受保護(hù)標(biāo)識(shí)符和數(shù)據(jù)計(jì)算的擴(kuò)展校驗(yàn)和。
圖2更加詳細(xì)地顯示了同步字節(jié),它是以主機(jī)所需的波特率發(fā)送的字節(jié)0xAA.確定主機(jī)比特率的標(biāo)準(zhǔn)方法是測(cè)量從第一個(gè)下降沿到第五個(gè)下降沿的時(shí)間,然后將此值除以8,便得到所需的比特率。此值可以用于計(jì)算UART除數(shù)值。具體計(jì)算詳見(jiàn)后續(xù)部分。本應(yīng)用筆記假設(shè)用戶已設(shè)置LHS MMR來(lái)為同步字節(jié)的全部8位計(jì)時(shí)(LHSCON1 = 0x62)。
圖2. LIN同步字節(jié)
LIN波特率計(jì)算
使用LHS系統(tǒng),用戶在收到同步字節(jié)后會(huì)得到LHSVAL0中的值。LHSVAL0包含8 TBIT的等效值,此值用于產(chǎn)生UART除數(shù)COMDIV0、COMDIV1和小數(shù)除數(shù)COMDIV2的值。有關(guān)UART的更多信息,請(qǐng)參閱相關(guān)ADuC703x數(shù)據(jù)手冊(cè)。
為利用標(biāo)準(zhǔn)波特率發(fā)生器計(jì)算COMDIV0/COMDIV1值,需使用如下基本UART方程式:
其中:
DL為COMDIV0和COMDIV1的值。
CD為時(shí)鐘分頻比。
就LHSVAL0而言,所需的波特率如下:
(LHSVAL0采用內(nèi)部5.12 MHz時(shí)鐘,假設(shè)將LHSCON1配置為測(cè)量8 TBIT.)將標(biāo)準(zhǔn)波特率方程式與所需波特率方程式合并:
僅使用標(biāo)準(zhǔn)波特率發(fā)生器方程式可得出所需的COMDIV0/ COMDIV1值。
為提高精度,使用ADuC703x小數(shù)除數(shù)和以上針對(duì)標(biāo)準(zhǔn)波特率發(fā)生器計(jì)算的DL值(COMDIV0/COMDIV1)。使用小數(shù)除數(shù)的方程式如下:
其中,M和N為COMDIV2值。
評(píng)論