第二章,物理層主要有位定時和位填充、高速收發(fā)器、網絡拓撲結構、連接器。
本文引用地址:http://www.ex-cimer.com/article/201612/329855.htmCANopen的物理層相當于CAN控制器中采用的子層PLS(物理信號)、MAU(介質訪問單元)和MDI(介質專用接口),這些子層均位于驅動模塊中并通過連接器和電纜實現(xiàn)。
位定時其實就是針對各種不同的數據傳輸速率設定的采樣點。分為4個部分:同步段、傳播段、相位段1和相位段2。而位定時的采樣點恰好介于相位段1和2之間。
位填充可以表示為5個相同極性的位后面插入一個不同極性的填充位,而根據第3章里報文格式中得知,位填充只適合對幀起始SOF到CRC場之間的范圍內的數據進行處理。填充位可以由接收CAN控制器自動去除填充,因此CAN報文物理層上的長度取決于待傳輸的位格式。
收發(fā)器芯片具有一個Rx引腳和一個Tx引腳,這些引腳可直接將二進制信號輸入到CAN控制器中或微控制器中的CAN模塊,CAN_HCAN_L端口直接與兩條總線導線連接。另外用戶可以利用一個外部電阻,通過一個可選端口來改變脈沖沿斜率。
網絡拓撲結構ISO11898-2標準規(guī)定了一種帶2個終端電阻的線性總線結構,在總線兩端接上終端電阻可以避免導線上的信號反射。注意終端電阻的使用,總線導線的長度和類別選擇。
連接器采用9針D-Sub連接器的引腳分布。
第三章CAN協(xié)議
主要有報文格式和錯誤的檢測、限制和處理。
3.1報文格式
CAN規(guī)范定義,隱性電平的邏輯為1,顯性電平邏輯為0.有一個助記的是:顯靈(顯零),記住一個,另一個當然知道是隱1了。
CAN總線上傳輸的幀有4個類型:數據幀、遠程幀、錯誤幀、超載幀。
標準格式的數據幀組成:
幀起始(SOF):指示一個數據幀和遠程幀的開始,包含一個確定的顯性位。
標識符場(CAN-ID):標識符場由11位組成,用于表示確定的待傳輸消息,數值作侍傳輸消息的優(yōu)先級。
遠程傳輸請求位(RTR):用于區(qū)分數據幀還是遠程幀。當為顯性時傳輸數據幀,隱性為遠程幀。
控制段:由6位組成,其中有4位DLC(數據長度代碼)。DLC表示此幀在數據段中的傳輸字節(jié)數。
數據段:0~8字節(jié),包含此幀傳輸的實際有效信息。
CRC段:循環(huán)冗余校驗。用來識別是否接收錯誤的數據。
應答段:應答間隙位的電平值可以用來提示本網絡中沒有接收器正確收到了當前發(fā)送的消息。
幀結束:由7位隱性電平的位組成。
幀間空間(ITM)已經不屬于前一條幀的組成單元。
錯誤幀:主動錯誤標志由6個連續(xù)顯性電平的位組成,這違反了CAN填充規(guī)則,所以網絡中所有的設備都可以識別出這種錯誤標志。由主動錯誤標志轉為被動錯誤標志。錯誤界定符由8個隱性電平位組成,用于結束錯誤幀。
過載幀:通常由尚未處理完上一幀消息的CAN控制器發(fā)出,可以用于延遲網絡中其他設備發(fā)送下一條消息。過載標志由6個連續(xù)顯性電平位組成,且必須在幀空間ITM的前兩個位之內開始。過載界定符由8個隱性電平組成,用于結束過載幀。過載幀不會影響錯誤計數器的讀數,這接收錯誤計數器REC在發(fā)送過載標志檢測到的位錯誤REC不加1的原因吧。
CAN位信息的傳輸使用不歸零編碼(NRZ)的方式。
NRZ:信號電平的一次反轉代表1,電平不變化表示0,并且在表示完一個碼元后,電壓不需回到0.
好處是在一個位時間間隔里,只需要進行一次掃描就可以檢測到電平。缺點是當出現(xiàn)一些極性相同的連續(xù)位時,沒有可用的信號邊沿來同步接收器。
CAN總線仲裁與填充原理需要注意。
3.2錯誤的檢測、限制和處理
有5種檢測機制檢測錯誤:
位錯誤
填充規(guī)則錯誤
CRC錯誤
應答錯誤
格式錯誤
所有CAN協(xié)議控制器都內置兩個錯誤計數器,一個接收錯誤計數器REC,一個是發(fā)送錯誤計數器TEC。
錯誤計數器的值大于127小于255時,設備進入被動錯誤狀態(tài);當錯誤計數器的值小于127時,設備處于主動錯誤狀態(tài);當錯誤計數器大于255時,設備進入總線脫離(BusOff)狀態(tài)。
錯誤計數器的增減規(guī)定有8個。需要詳細的可以留言給我。
如果某一過載幀中檢測出錯誤,剛只有處于錯誤主動狀態(tài)的設備才能允許發(fā)送一個錯誤標志。
評論