航順HK32F系列
航順HK32F系列MCU都采用的是ARM? Cortex內核架構,其中HK32F103家族使用的是Cortex-M3內核,支持96M的系統時鐘,內部資源以及外設豐富,其內部自帶的CAN模塊應用非常廣泛。工業類,汽車電子產品大部分需要用到CAN通訊協議,并且采用正向設計軟硬件全兼容國外進口產品,本節就針對航順HK32F103x8xB系列MCU 的CAN應用差異部分做個說明。
CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,并最終成為國際標準(ISO 11898),是國際上應用最廣泛的現場總線之一。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。
CAN總線的特點
(1)它是一種多主總線,即每個節點機均可成為主機,且節點機之間也可進行通信。
(2)通信介質可以是雙絞線、同軸電纜或光導纖維,通信速率可達1mb/s。
(3)CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余校驗、優先級判別等項工作。
(4)CAN協議的一個最大特點是廢除了傳統的站地址編碼,代之以對通信數據塊進行編碼。采用這種方法的優點是可使網絡內的節點個數在理論上不受限制,數據塊的標識碼可由11位或29位二進制數組成,因此可以定義211或229個不同的數據塊,這種數據塊編碼方式,還可使不同的節點同時接收到相同的數據,這一點在分步式控制中非常重要。
(5)數據段長度最多為8個字節,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8個字節不會占用總線時間過長,從而佐證了通信的實時性。
(6)CAN協議采用crc檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。CAN總線所具有的卓越性能、極高的可靠性和獨特設計,特別適合工業設備測控單元互連。因此備受工業界的重視,并已公認為最有前途的現場總線之一。
以下為用戶使用HK芯片替代S*M 系列的CAN應用常見的問題
CAN 環回測試失敗
MXCube 比較老的版本(比如 4.17.0),產生的 CAN 初始化代碼不正確。
錯誤如下:
while(HAL_IS_BIT_CLR(hcan->Instance->MSR, CAN_MSR_INAK)) …… while(HAL_IS_BIT_SET(hcan->Instance->MSR, CAN_MSR_INAK))
解決方案:
1.確認庫版本,經過我們測試發現,這2個判斷順序反了,MXCube4.22.0產生的CAN初始化代碼已經交換過來了。
CAN 初始化不能完成
CAN總線在沒有數據發送時,默認為隱性。對于我們芯片CANRX就應該是高電平,如果CAN網絡出現異常,將總線拉成顯性,或者,測試中CANRX接口沒有接PHY芯片,也沒有接上拉電阻,我們芯片都會出現CAN初始化不能完成,S*T*M32F103相同條件下可以初始化完成。
根本原因:
我們芯片在初始化過程中會判斷總線的隱性狀態,如果不是隱性,不能完成初始化。
解決方案:
1. CANRX 必須接上拉電阻或內部上拉。
CAN MSR寄存器INAK 置位慢
客戶使用CAN接口標準庫,初始化CAN控制器,HK32F103在INRQ置位后,INAK并沒有立即置1,導致客戶代碼進入Fail,后續初始化程序沒有運行到。
客戶原始代碼如下:
/* Request initialisation */ CAN->MCR = CAN_MCR_INRQ; /* ...and check acknowledged */ if ((CAN->MSR CAN_MSR_INAK) == 0) { InitStatus = CANINITFAILED; } else {初始化CAN控制器的寄存器}
推薦方案:在設置INRQ后,延時等待檢查INAK=1后,再進行初始化。
/* Request initialisation */ CAN->MCR = CAN_MCR_INRQ; while((CAN->MSR CAN_MSR_INAK) ==0) { i++; if(i>100)return CANINITFAILED; } /* ...and check acknowledged */ if ((CAN->MSR CAN_MSR_INAK) == 0) { InitStatus = CANINITFAILED; } else {初始化CAN控制器的寄存器 }
根本原因:
HK32F103在INRQ置位后,INAK需要98個PCLK才會被置1。
航順F1系列專用函數庫以及S*M最新的標準庫都是加了延時了。
來源:航順芯片
審核編輯:湯梓紅
-
CAN總線
+關注
關注
145文章
1946瀏覽量
130726 -
CAN
+關注
關注
57文章
2744瀏覽量
463619 -
航順芯片
+關注
關注
1文章
106瀏覽量
22794
發布評論請先 登錄
相關推薦
評論