CANfd 一次采样点和二次采样点
CANfd 一次采樣點(diǎn)和二次采樣點(diǎn)
采樣點(diǎn)的定義
采樣點(diǎn)是CAN控制器讀取總線電平,并解釋各個(gè)比特的邏輯值的時(shí)間點(diǎn)。
首先我們需要了解Tq的概念,Tq是can控制器的最小時(shí)間周期稱作時(shí)間份額(Time quantum,簡稱Tq),它是通過芯片晶振周期分頻而來。傳輸?shù)膫€(gè)bit位由若干個(gè)Tq組成,根據(jù)功能傳輸一個(gè)BIT位需要分成四個(gè)階段:同步段、傳輸段、相位緩沖段1和相位緩沖段2.
這4個(gè)階段的功能如下:
1.同步段(Sync_Seg):用于實(shí)現(xiàn)時(shí)序調(diào)整,總線上各個(gè)節(jié)點(diǎn)的跳變沿產(chǎn)生在同步段內(nèi),通常為1個(gè)Tq;
2.傳播段(Prop_Seg):用于補(bǔ)償網(wǎng)絡(luò)上的物理延遲時(shí)間。這些延遲時(shí)間包含信號在總線上的傳輸延遲和CAN節(jié)點(diǎn)內(nèi)部的處理延遲。傳播段保證了2倍的信號在總線上的延遲時(shí)間;
3.相位緩沖段1(Phase_Seg1)和相位緩沖段2(Phase_Seg2):用于補(bǔ)償跳變沿的相位誤差,其長度會在重同步的實(shí)現(xiàn)過程中延長或縮短。
采樣點(diǎn)位于相位緩沖段1的結(jié)尾。由于相位緩沖段1和相位緩沖段2能夠延長或縮短,采樣點(diǎn)也能夠隨之變化。
can采樣點(diǎn)的計(jì)算
晶振時(shí)鐘周期:是由單片機(jī)振蕩器的晶振頻率決定的,指的是振蕩器每震蕩一次所消耗的時(shí)間長度,也是整個(gè)系統(tǒng)中最小的時(shí)間單位;
下面以TP377為例進(jìn)行計(jì)算
通過查看配置我們的canfd的,采樣分為仲裁場和數(shù)據(jù)場。仲裁場的波特率為500Kbit/s,數(shù)據(jù)場為2Mbit/s,can時(shí)鐘頻率為4.0E7。
查看TP377手冊Tq = (DBRP + 1) clock cycles
Tq=(1+1)1/4.0E7(s)=50(ns)
仲裁場計(jì)算采樣點(diǎn):
對于仲裁場500k,傳輸一個(gè)bit位的時(shí)間1/500000s=2us,所以分配
2us/50ns=40個(gè)tq,
如果采樣點(diǎn)設(shè)置為80%,則sync_seg+prop_seg+phase_seg1=4080%=32Tq
在ET tresos中可以這樣配置
數(shù)據(jù)場采樣點(diǎn)計(jì)算:
對于數(shù)據(jù)場2Mkbs,傳輸一個(gè)bit位的時(shí)間1/2000000s=500ns,所以分配
500ns/50ns=10個(gè)tq,
如果采樣點(diǎn)設(shè)置為80%,則sync_seg+prop_seg+phase_seg1=10*80%=8Tq
則對應(yīng)在EB TRESOS中配置如下
CAN-FD與CAN發(fā)送速率的不同
CAN最大傳輸速率1Mbps,CAN-FD速率可變,仲裁比特率最高1Mbps(與CAN相同),數(shù)據(jù)比特率最高8Mbps。BRS位速率切換為,BRS位為0時(shí)CANFD速率保持恒定速率、BRS位為1時(shí)CANFD的數(shù)據(jù)段會被切換到高速率。
ESI錯(cuò)誤狀態(tài)指示位:CAN報(bào)文中發(fā)送節(jié)點(diǎn)的錯(cuò)誤狀態(tài)只有該節(jié)點(diǎn)自己知道,CANFD報(bào)文中可以通過ESI標(biāo)志位來告訴其他節(jié)點(diǎn)該節(jié)點(diǎn)的錯(cuò)誤狀態(tài),當(dāng)ESI為1時(shí)表示發(fā)送節(jié)點(diǎn)處于被動錯(cuò)誤狀態(tài)、當(dāng)ESI為0時(shí)表示發(fā)送節(jié)點(diǎn)處于主動錯(cuò)誤狀態(tài)。
發(fā)送延遲補(bǔ)償
CAN控制器發(fā)送信號時(shí),是經(jīng)過收發(fā)器后發(fā)往CAN總線后,再經(jīng)過收發(fā)器反饋總線信號。那么發(fā)送過程中,控制器發(fā)送位信號到接收位信號就不可避免地存在環(huán)路延遲。發(fā)送延遲時(shí)間的總和如下:
1 ). CAN控制器內(nèi)部產(chǎn)生TX信號到Tx引腳的傳播延遲;
2 ). Tx引腳到收發(fā)器TxD引腳的傳播延遲;
3 ).收發(fā)器環(huán)路延遲TxD到RxD;
4 ). 收發(fā)器RxD引腳到CAN控制器Rx引腳延遲;
5 ).CAN控制器Rx引腳到控制器內(nèi)部收到Rx信號的延遲
CAN協(xié)議中規(guī)定:發(fā)送方發(fā)送位時(shí),需檢測接收到的位與發(fā)送是否一致,若不一致則產(chǎn)生錯(cuò)誤幀(位錯(cuò)誤)。如果發(fā)送延遲過長,則將直接導(dǎo)致發(fā)送與接收位不一致而產(chǎn)生錯(cuò)誤幀。由于傳統(tǒng)CAN協(xié)議規(guī)定最高波特率為1Mbps,即位寬1us,正常情況下,傳輸延遲不會超過位寬的采樣點(diǎn)(當(dāng)然具體延遲取決于收發(fā)器環(huán)路延遲、傳輸距離、傳輸線纜質(zhì)量等),因此不會因?yàn)榘l(fā)送延遲而產(chǎn)生錯(cuò)誤。
在CANFD中,數(shù)據(jù)段的波特率是比CAN更高的(BRS位為隱性時(shí)),此時(shí)波特率越高,位寬越小,在發(fā)送報(bào)文時(shí)發(fā)送延遲影響越大,越容易產(chǎn)生位錯(cuò)誤。由于發(fā)送延遲無法避免,此時(shí)就需要一種機(jī)制來保證發(fā)送與接收的位對應(yīng)上,以避免產(chǎn)生位錯(cuò)誤。這種機(jī)制就是發(fā)送延遲補(bǔ)償了。
發(fā)送延遲補(bǔ)償(TDC)
TDC實(shí)際上就是在發(fā)送BRS位為隱性的CANFD報(bào)文時(shí)(BRS隱性即開啟數(shù)據(jù)域波特率),在發(fā)送時(shí)延遲一定時(shí)間后,在第二采樣點(diǎn)采樣接收位,以正確采樣到發(fā)送位對應(yīng)的接收位。
發(fā)送延遲測量
那么延遲采樣的延遲時(shí)間是多久呢?實(shí)際上,開啟TDC后,控制器將自動測量Tx信號線上FDF位到r0位下降沿與Rx信號線上FDF位到r0位邊沿的之間的延遲時(shí)間,如下圖中所示,TDCV即為延遲時(shí)間。發(fā)送延遲測量的時(shí)間單位為CAN控制器時(shí)鐘(TDC寄存器中一般對TDCV的值有限制,若超過寄存器最大位數(shù),則發(fā)送延遲測量失敗)。
不同于采樣點(diǎn),第二采樣點(diǎn)在CAN FD控制器接收其他節(jié)點(diǎn)發(fā)送報(bào)文的過程中并不會起到任何作用。第二采樣點(diǎn)的作用,是在不改變傳輸延遲補(bǔ)償?shù)那闆r下,實(shí)現(xiàn)CAN FD在數(shù)據(jù)場的位錯(cuò)誤檢測要求。
根據(jù)TP377手冊
根據(jù)手冊TDCV是接收到數(shù)據(jù)時(shí)的發(fā)送延遲時(shí)間,是當(dāng)TDC使能的時(shí)候會自己自動計(jì)算的。
TDCO就是設(shè)置的正常采樣點(diǎn)的時(shí)間。
總結(jié)
以上是生活随笔為你收集整理的CANfd 一次采样点和二次采样点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 悦淘金:什么才是社交零售的真正逻辑?电商
- 下一篇: C20S023全新概念高集成单片机