h1_key

當(dāng)前位置:首頁 >新聞資訊 > 技術(shù)文章>航順芯片>HK32F103x8xB系列CAN的應(yīng)用解決方案
HK32F103x8xB系列CAN的應(yīng)用解決方案
2022-11-28 1395次




  航順HK32F系列

  航順HK32F系列MCU都采用的是ARM®Cortex內(nèi)核架構(gòu),其中HK32F103家族使用的是Cortex-M3內(nèi)核,支持96M的系統(tǒng)時(shí)鐘,內(nèi)部資源以及外設(shè)豐富,其內(nèi)部自帶的CAN模塊應(yīng)用非常廣泛。工業(yè)類,汽車電子產(chǎn)品大部分需要用到CAN通訊協(xié)議,并且采用正向設(shè)計(jì)軟硬件全兼容國外進(jìn)口產(chǎn)品,本節(jié)就針對航順HK32F103x8xB系列MCU 的CAN應(yīng)用差異部分做個說明。

  CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡稱,是由以研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā)的,并最終成為國際標(biāo)準(zhǔn)(ISO 11898),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。在北美和西歐,CAN總線協(xié)議已經(jīng)成為汽車計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機(jī)械車輛設(shè)計(jì)的J1939協(xié)議。


  CAN總線的特點(diǎn)

  (1)它是一種多主總線,即每個節(jié)點(diǎn)機(jī)均可成為主機(jī),且節(jié)點(diǎn)機(jī)之間也可進(jìn)行通信。

  (2)通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,通信速率可達(dá)1mb/s。

  (3)CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余校驗(yàn)、優(yōu)先級判別等項(xiàng)工作。

  (4)CAN協(xié)議的一個最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,代之以對通信數(shù)據(jù)塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)是可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識碼可由11位或29位二進(jìn)制數(shù)組成,因此可以定義211或229個不同的數(shù)據(jù)塊,這種數(shù)據(jù)塊編碼方式,還可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這一點(diǎn)在分步式控制中非常重要。

  (5)數(shù)據(jù)段長度最多為8個字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時(shí),8個字節(jié)不會占用總線時(shí)間過長,從而佐證了通信的實(shí)時(shí)性。

  (6)CAN協(xié)議采用crc檢驗(yàn)并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN總線所具有的卓越性能、極高的可靠性和獨(dú)特設(shè)計(jì),特別適合工業(yè)設(shè)備測控單元互連。因此備受工業(yè)界的重視,并已公認(rèn)為最有前途的現(xiàn)場總線之一。

  以下為用戶使用HK芯片替代S*M 系列的CAN應(yīng)用常見的問題

  CAN 環(huán)回測試失敗

  MXCube 比較老的版本(比如 4.17.0),產(chǎn)生的 CAN 初始化代碼不正確。


  錯誤如下:

  while(HAL_IS_BIT_CLR(hcan->Instance->MSR, CAN_MSR_INAK))

  ……

  while(HAL_IS_BIT_SET(hcan->Instance->MSR, CAN_MSR_INAK))

  解決方案:

  1.確認(rèn)庫版本,經(jīng)過我們測試發(fā)現(xiàn),這2個判斷順序反了,MXCube4.22.0產(chǎn)生的CAN初始化代碼已經(jīng)交換過來了。

  CAN 初始化不能完成

  CAN總線在沒有數(shù)據(jù)發(fā)送時(shí),默認(rèn)為隱性。對于我們芯片CANRX就應(yīng)該是高電平,如果CAN網(wǎng)絡(luò)出現(xiàn)異常,將總線拉成顯性,或者,測試中CANRX接口沒有接PHY芯片,也沒有接上拉電阻,我們芯片都會出現(xiàn)CAN初始化不能完成,S*T*M32F103相同條件下可以初始化完成。


  根本原因:

  我們芯片在初始化過程中會判斷總線的隱性狀態(tài),如果不是隱性,不能完成初始化。


  解決方案:

  1. CANRX 必須接上拉電阻或內(nèi)部上拉。

  CAN MSR寄存器INAK 置位慢

  客戶使用CAN接口標(biāo)準(zhǔn)庫,初始化CAN控制器,HK32F103在INRQ置位后,INAK并沒有立即置1,導(dǎo)致客戶代碼進(jìn)入Fail,后續(xù)初始化程序沒有運(yùn)行到。


  客戶原始代碼如下:

  /* Request initialisation */

  CAN->MCR = CAN_MCR_INRQ;

  /* ...and check acknowledged */

  if ((CAN->MSR & CAN_MSR_INAK) == 0)

  {

  InitStatus = CANINITFAILED;

  }

  else

  {初始化CAN控制器的寄存器}

  推薦方案:在設(shè)置INRQ后,延時(shí)等待檢查INAK=1后,再進(jìn)行初始化。

  /* 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系列專用函數(shù)庫以及S*M最新的標(biāo)準(zhǔn)庫都是加了延時(shí)了。

  • 航順芯片HK32M060高速風(fēng)筒BLDC MCU解決方案
  • 航順芯片推出的HK32M060高速風(fēng)筒BLDC MCU解決方案,具有航順自研電機(jī)加速單元與實(shí)時(shí)采樣效率,可提高電機(jī)的工作效率和控制精確度。同時(shí),HK32M060系列產(chǎn)品相較于同類產(chǎn)品集成度更高,可極大精簡板級器件,節(jié)省BOM成本。
    2023-12-27 383次
  • 消防栓裝上航順芯HK32L08x
  • 消防栓是重要的火災(zāi)控制設(shè)備,但在實(shí)際應(yīng)用中,消防栓存在安裝分散和管理復(fù)雜等問題,于是火災(zāi)現(xiàn)場供水壓力不足、搶修停水等現(xiàn)象屢見不鮮,嚴(yán)重影響滅火工作,造成重大人身財(cái)產(chǎn)損失,影響城市消防安全。
    2023-10-30 467次
  • 13萬轉(zhuǎn)高速吹風(fēng)機(jī)HK32F030C8T6解決方案
  • 航順芯片作為國產(chǎn)32位MCU供應(yīng)商,根據(jù)市場需求,推出了基于國產(chǎn)32位MCU HK32F030C8T6芯片的高速吹風(fēng)機(jī)整體解決方案,以其高轉(zhuǎn)速(高達(dá)13萬轉(zhuǎn))、精準(zhǔn)恒溫、高性能低成本、高可靠性等優(yōu)點(diǎn),深受客戶認(rèn)可,已在多家知名品牌客戶中量產(chǎn)出貨。
    2023-06-19 719次
  • HK32F0301MxC 15KV脈沖點(diǎn)火抗干擾分析
  • HK32F0301MxC在廚房環(huán)境中,廚電脈沖點(diǎn)火高達(dá)一萬五千伏,產(chǎn)生的干擾對MCU確實(shí)是一項(xiàng)硬核考驗(yàn),廚電設(shè)備的開關(guān)、點(diǎn)火等操作會產(chǎn)生大量的電磁干擾,這些干擾可能會對MCU的正常工作造成影響,甚至導(dǎo)致系統(tǒng)故障或安全事故。
    2023-05-08 612次
  • 航順芯片32位平替8位MCU神器HK32F0301M
  • 航順芯片從2019年立項(xiàng),2020年2月首次發(fā)布推出第一顆低于1元人民幣的經(jīng)濟(jì)型32位MCU HK32F030M家族替代8位MCU以來,在高性能、高性價(jià)比的魅力下得到了廣大客戶的熱烈追捧,應(yīng)用場景與領(lǐng)域越來越廣。
    2023-04-18 629次

    萬聯(lián)芯微信公眾號

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺
    關(guān)注公眾號,優(yōu)惠活動早知道!
    10s
    溫馨提示:
    訂單商品問題請移至我的售后服務(wù)提交售后申請,其他需投訴問題可移至我的投訴提交,我們將在第一時(shí)間給您答復(fù)
    返回頂部