<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > LPC11Cx系列CAN總線(xiàn)位定時(shí)參數計算方法校正

LPC11Cx系列CAN總線(xiàn)位定時(shí)參數計算方法校正

作者: 時(shí)間:2016-10-10 來(lái)源:網(wǎng)絡(luò ) 收藏

引言
LPC11Cx系列是NXP公司的高性?xún)r(jià)比Cortex—M0構架產(chǎn)品,內嵌CAN總線(xiàn)控制器。CAN總線(xiàn)位定時(shí)參數決定CAN總線(xiàn)能否按給定速率正常及其穩定性,但在實(shí)踐中發(fā)現,原版用戶(hù)手冊及國內譯本在CAN總線(xiàn)位定時(shí)參數配置寄存器的表述上有誤,導致用戶(hù)CAN總線(xiàn)無(wú)法正常。下面將校正錯誤,并給出CAN總線(xiàn)位定時(shí)參數具體計算實(shí)例。

1 位定時(shí)時(shí)序及參數
依據CAN總線(xiàn)規范,LPC11Cx系列的位時(shí)間被分成4個(gè)段:同步段、時(shí)間傳播段、相位緩沖區段1和相位緩沖區段2,位時(shí)序如圖1所示。

本文引用地址:http://dyxdggzs.com/article/201610/306490.htm

a.JPG


圖1中,每一個(gè)段包含有一個(gè)指定的、可編程的時(shí)間量子數,如表1所列。

b.JPG


表1中,時(shí)間量子tq是位時(shí)間長(cháng)度的基本時(shí)間單元,tq與CAN總線(xiàn)控制器的系統時(shí)鐘fsys可確定參數BRP,即tq=BRP/fsys。同步段SYNC_SEG是位時(shí)間的第一部分,CAN總線(xiàn)的邊沿電平會(huì )在這里發(fā)生。傳播時(shí)間段PROP_SEG用于對CAN總線(xiàn)網(wǎng)絡(luò )內的物理延遲時(shí)間進(jìn)行補償。
相位緩沖區段TSEG1和TSEG2包圍著(zhù)采樣點(diǎn)。(重新)同步跳轉寬度SJW實(shí)現對邊沿相位誤差作出補償。

2 位定時(shí)寄存器描述校正
LPC11Cx系列CAN總線(xiàn)的位時(shí)間參數通過(guò)其內部的32位控制寄存器CANBT來(lái)定義及編程。CANBT寄存器的詳細描述如表2所列。

c.JPG


請注意,表2中上標注*表示硬件把寫(xiě)入這些位的值理解為位值+1。NXP公司原版用戶(hù)手冊及國內譯本還同時(shí)標注了SJW、TSEG2,說(shuō)明這兩項也需進(jìn)行位值+1處理,但這么做得出的位定時(shí)參數無(wú)法使CAN總線(xiàn)正常。

3 位定時(shí)參數計算
根據表1各定時(shí)位段定義,設目標系統晶振頻率為12 MHz,經(jīng)過(guò)LPC11Cx內部PLL鎖相環(huán)電路倍頻后,系統時(shí)鐘頻率fsys為48 MHz?,F要求CAN總線(xiàn)速率fc為500 kHz,則CAN總線(xiàn)時(shí)鐘周期tc=1/fc=1/500 kHz=2μs,位定時(shí)參數計算如下。
首先,將系統時(shí)鐘頻率fsys進(jìn)行6分頻,即fsys/(BRP+1)=fsys/6=48 MHz/6=8 MHz,由此確定參數BRP=0x000101,而時(shí)間量子tq=1/8 MHz=0.125μs,CAN總線(xiàn)時(shí)鐘周期tc包含的時(shí)間量子tq的個(gè)數為:tc/tq=2 μs/0.125 μs=16。
然后,根據CAN總線(xiàn)傳輸介質(zhì)及應用場(chǎng)合的電磁干擾狀況,適當確定CAN總線(xiàn)位定時(shí)寄存器CANBT的SJW、TSEG1、TSEG2的值,使這3項位值之和等于16。這里對3項位值取值為:SJW=0x11,TSEG1=0x0110,TSEG2=0x111,并滿(mǎn)足:SJW+(TSEG1+1)+TSEG2=16。
最后,將上述位值組合,確定位定時(shí)參數值為0x76C5,這個(gè)值將被配置寫(xiě)入到位定時(shí)寄存器CANBT中。在Cortex—M0的CMSIS軟件開(kāi)發(fā)標準框架下,可很方便地調用LPC11Cx片上CAN API函數集來(lái)編程,如下語(yǔ)句即可實(shí)現寄存器CANBT的位定時(shí)參數配置:
/*CAN總線(xiàn)波特率與時(shí)鐘初始化*/
INT32U CanApiClkInitTable[2]={
0x00000000UL,
/*CAN時(shí)鐘分頻寄存器CANCLKDIV分頻值為1*/
0x000076C5UL/*配置定時(shí)寄存器CANBTR值為0x76C5*/
};

結語(yǔ)
實(shí)踐表明,在改變系統時(shí)鐘頻率、CAN總線(xiàn)通信速率及CANBT寄存器的各項位值的情況下,校正之后的位定時(shí)參數計算方法所獲得的參數值均能滿(mǎn)足CAN總線(xiàn)正常通信的要求,消除了用戶(hù)手冊誤導。如何提高CAN總線(xiàn)通信的可靠性,在位定時(shí)方面還需要根據CAN總線(xiàn)的具體工作狀況不斷進(jìn)行實(shí)驗,并對CANBT寄存器的各項位值仔細調整而得到最佳值。



關(guān)鍵詞: ARM 微控制器 通信

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>