基于STM32H743芯片上實(shí)現(xiàn)CAN通信步驟設(shè)計(jì)方案


??STM32H743是一款高性能處理器,具有強(qiáng)大的處理能力,可滿足各種處理要求。它的特點(diǎn)是:高速運(yùn)行,低功耗,可靠性高,多功能,易于使用,可以用于各種應(yīng)用場(chǎng)景。本文旨在介紹STM32H743的特點(diǎn),并分析其在多種應(yīng)用場(chǎng)景中的優(yōu)勢(shì)。
STM32H743的優(yōu)勢(shì)
??高速運(yùn)行
??STM32H743具有高效率的處理速度,可以滿足各種復(fù)雜的應(yīng)用程序的需求。它的處理器核心為Cortex-M7,主頻高達(dá)400MHz,可以實(shí)現(xiàn)高速運(yùn)行,滿足復(fù)雜的應(yīng)用場(chǎng)景。
??低功耗
??STM32H743的低功耗特性使其可以長時(shí)間運(yùn)行,而不會(huì)影響系統(tǒng)的性能。它具有多種低功耗模式,可以有效減少系統(tǒng)的功耗。此外,STM32H743還支持多種外設(shè),可以更好地實(shí)現(xiàn)低功耗。
??可靠性高
??STM32H743具有可靠性高的特點(diǎn),它的處理器核心采用了多級(jí)安全技術(shù),可以有效防止惡意攻擊,保護(hù)系統(tǒng)的安全性。此外,STM32H743還支持多種外設(shè),可以更好地實(shí)現(xiàn)系統(tǒng)的可靠性。
??多功能
??STM32H743支持多種外設(shè),可以滿足各種應(yīng)用場(chǎng)景的需求。它支持USB、Ethernet、CAN、I2C、SPI等多種接口,可以滿足不同類型的設(shè)備的連接需求。此外,STM32H743還支持多種外設(shè),可以更好地實(shí)現(xiàn)多功能功能。
??易于使用
??STM32H743采用了高效的軟件開發(fā)工具,可以更加簡單、快捷地完成軟件開發(fā)。它支持多種開發(fā)語言,可以滿足不同類型的開發(fā)需求。此外,STM32H743還支持各種外設(shè),可以更加便捷地完成軟件開發(fā)。
STM32H743的應(yīng)用場(chǎng)景
??STM32H743可以用于各種應(yīng)用場(chǎng)景,其中包括:
??智能家居
??STM32H743可以用于智能家居系統(tǒng),可以實(shí)現(xiàn)家庭設(shè)備的連接、控制和管理。它的高速運(yùn)行和低功耗特性可以滿足智能家居系統(tǒng)的需求,可以更好地實(shí)現(xiàn)家庭智能化。
??自動(dòng)駕駛
??STM32H743可以用于自動(dòng)駕駛汽車,可以實(shí)現(xiàn)汽車的智能控制。它的高速運(yùn)行和可靠性高的特性可以滿足自動(dòng)駕駛系統(tǒng)的需求,可以更好地實(shí)現(xiàn)汽車的智能化。
??工業(yè)自動(dòng)化
??STM32H743可以用于工業(yè)自動(dòng)化系統(tǒng),可以實(shí)現(xiàn)多種設(shè)備的智能控制。它的高速運(yùn)行和多功能的特性可以滿足工業(yè)自動(dòng)化系統(tǒng)的需求,可以更好地實(shí)現(xiàn)工業(yè)自動(dòng)化。
總結(jié)
??STM32H743是一款高性能處理器,具有強(qiáng)大的處理能力,可滿足各種處理要求。它的特點(diǎn)是:高速運(yùn)行,低功耗,可靠性高,多功能,易于使用,可以用于各種應(yīng)用場(chǎng)景。它可以用于智能家居、自動(dòng)駕駛和工業(yè)自動(dòng)化等多種應(yīng)用場(chǎng)景,可以更好地實(shí)現(xiàn)智能化。
1. 摘要
本篇筆記主要介紹,在STM32H743芯片上實(shí)現(xiàn)CAN通信,封裝為BSP驅(qū)動(dòng),為之后實(shí)現(xiàn)CAN的高層通信打下基礎(chǔ)。
2. 準(zhǔn)備工作
1, IAR 8.32.1
2, STM32Cube_FW_H7_V1.6.0
3. 簡介
STM32H743的控制器局域網(wǎng)絡(luò) (CAN) 子系統(tǒng)由兩個(gè) CAN 模塊、一個(gè)共享消息 RAM 存儲(chǔ)器和一個(gè)時(shí)鐘校準(zhǔn)單元組成。關(guān)于這四個(gè)組成部分的基址,請(qǐng)參見存儲(chǔ)器映射。兩個(gè) CAN 模塊(FDCAN1 和 FDCAN2)均符合 ISO 11898-1: 2015(CAN 協(xié)議規(guī)范第 2.0 版A、 B 部分)和 CAN FD 協(xié)議規(guī)范第 1.0 版。此外,第一個(gè) CAN 模塊 FDCAN1 支持 ISO 11898-4 中規(guī)定的時(shí)間觸發(fā) CAN (TTCAN),包括事件同步時(shí)間觸發(fā)通信、全局系統(tǒng)時(shí)間和時(shí)鐘漂移補(bǔ)償。FDCAN1 還額外包含專供時(shí)間觸發(fā)功能使用的寄存器。CAN FD 選項(xiàng)可與事件觸發(fā)和時(shí)間觸發(fā) CAN 通信一起使用。10 KB 的消息 RAM 存儲(chǔ)器可實(shí)現(xiàn)過濾器、接收 FIFO、接收緩沖區(qū)、發(fā)送事件 FIFO、發(fā)送緩沖器( TTCAN 觸發(fā))功能。該消息 RAM 在 FDCAN1 和 FDCAN2 模塊之間共用。通用時(shí)鐘校準(zhǔn)單元是可選的。通過評(píng)估 FDCAN1 接收到的 CAN 消息,該單元可基于 HSI 內(nèi)部 RC 振蕩器和 PLL 為 FDCAN1 和 FDCAN2 生成經(jīng)過校準(zhǔn)的時(shí)鐘。
CAN 框圖

CAN的底層大部分ST已經(jīng)在HAL庫里面封裝好,如果你細(xì)看HAL源碼,搞懂這張圖,H743的CAN 你基本上就沒有問題了,在結(jié)合HAL庫的學(xué)習(xí)。
4. 驅(qū)動(dòng)實(shí)現(xiàn)
良好的驅(qū)動(dòng)封裝,可以方便應(yīng)用開發(fā),并且可以容易移植到其他項(xiàng)目,代碼重用率高,所以數(shù)據(jù)和接口是你不得不考慮的問題,怎么樣方便的實(shí)現(xiàn),還要通用易用。
4.1 數(shù)據(jù)封裝
首先根據(jù)stm32h7xx_hal_fdcan.h文件我們來封裝兩個(gè)個(gè)結(jié)構(gòu)體,方便后面軟件實(shí)現(xiàn)開發(fā),可以新建bsp_can.c和bsp_can.h, 在頭文件中封裝結(jié)構(gòu)體定義。

在.c文件中定義封裝一些變量,這些變量數(shù)組也是通用,在多款產(chǎn)品中都采用,大家也可以參照。

可以實(shí)現(xiàn)多個(gè)CAN口驅(qū)動(dòng)。如果只有一個(gè)CAN口,將CAN_PORTS宏定義為1,幾個(gè)就定義為幾。
這個(gè)封裝大家可以記著,我在多款器件上都是這么封裝的,之前在NXP的KE06, KEA, KV46, K64等系列,在ST的F103, F446, H743等等CAN通信都采用這種封裝BSP驅(qū)動(dòng)。
4.2 初始化
參考官方的例程,根據(jù)自己的硬件去實(shí)現(xiàn),做相應(yīng)修改。例程中只使能了接收中斷,我們一般發(fā)送也要采用中斷,所以也要開發(fā)送中斷,根據(jù)實(shí)際可能還需要添加濾波,配置緩沖等。



配置時(shí)鐘管腳,中斷。


4.3 中斷回調(diào)函數(shù)
最主要的就是接收和發(fā)送的回調(diào)函數(shù)的實(shí)現(xiàn),首先來看接收中斷回調(diào)函數(shù)。

發(fā)送完成回調(diào)函數(shù)

4.4 測(cè)試代碼
在freeRTOS下建立一個(gè)CAN通信的簡單測(cè)試任務(wù),實(shí)現(xiàn)收到什么在發(fā)送出去。


在10ms的任務(wù)里去調(diào)用這個(gè)測(cè)試函數(shù),實(shí)現(xiàn)收發(fā)測(cè)試。
測(cè)試的可以這樣寫,正式的我們需要解析收到的內(nèi)容,并且重新組織發(fā)送的幀,這些解析和重組我們將會(huì)在高層的協(xié)議驅(qū)動(dòng)文件中實(shí)現(xiàn),有了這個(gè)驅(qū)動(dòng)就可以實(shí)現(xiàn)CANopen, J1939, DeviceNet等CAN的高層協(xié)議了。
5. 測(cè)試
測(cè)試,擴(kuò)展幀,500k 位速率,發(fā)送數(shù)據(jù) aa,01,02,03,04,05,06,bb。板卡收到電腦發(fā)送的數(shù)據(jù)后,回送給電腦。發(fā)送100000次, 10ms一次。使用USB-CAN連接到電腦端測(cè)試。



至此我們的CAN通信BSP驅(qū)動(dòng)封裝就驗(yàn)證完成,可以輕松移植到其他板卡上。
原裝STM32H743IIT6 ARM微控制器規(guī)格參數(shù)及引腳功能圖 2023-08-25 16:40 發(fā)布于:安徽省
STM32H743IIT6設(shè)備基于高性能Arm?Cortex?-M7 32位RISC內(nèi)核,工作頻率高達(dá)480 MHz。Cortex?-M7核心采用浮點(diǎn)單元(FPU),支持Arm?雙精度(符合IEEE 754)和單精度數(shù)據(jù)處理指令和數(shù)據(jù)類型。STM32H743IIT6支持全套DSP指令和內(nèi)存保護(hù)單元(MPU),以增強(qiáng)應(yīng)用程序的安全性。
STM32H743IIT6包含高速嵌入式存儲(chǔ)器,該存儲(chǔ)器具有高達(dá)2 MB的雙組閃存、高達(dá)1 MB的RAM(包括192 KB的TCM RAM、高達(dá)864 KB的用戶SRAM和4 KB的備份SRAM),以及連接到APB總線、AHB總線、,2x32位多AHB總線矩陣和支持內(nèi)部和外部存儲(chǔ)器訪問的多層AXI互連。
該設(shè)備都提供三個(gè)ADC、兩個(gè)DAC、兩個(gè)超低功率比較器、一個(gè)低功耗RTC、一個(gè)高分辨率定時(shí)器、12個(gè)通用16位定時(shí)器、兩個(gè)用于電機(jī)控制的PWM定時(shí)器、五個(gè)低功耗定時(shí)器和一個(gè)真隨機(jī)數(shù)發(fā)生器(RNG)。這些設(shè)備支持用于外部西格瑪-德爾塔調(diào)制器(DFSDM)的四個(gè)數(shù)字濾波器。它們還具有標(biāo)準(zhǔn)和高級(jí)通信接口。
如果需要采購原裝STM32H743IIT6器件,或者查看更多PDF文檔內(nèi)容,可以搜索“IC先生”聯(lián)系我們。

規(guī)格參數(shù)

規(guī)格特性
核心
?32位Arm?Cortex?-M7內(nèi)核,帶雙精度FPU和L1緩存:16 KB數(shù)據(jù)以及16K字節(jié)的指令高速緩存;頻率高達(dá)480 MHz,MPU,1027 DMIPS/2.14 DMIPS/MHz(Dhrystone 2.1)
內(nèi)存
?高達(dá)2兆字節(jié)的閃存,支持邊讀邊寫
?高達(dá)1兆字節(jié)的RAM:192千字節(jié)的TCMRAM(股份有限公司64K字節(jié)的ITCM RAM+128 KB DTCM RAM,用于時(shí)間關(guān)鍵型例程),高達(dá)864 KB的用戶SRAM,以及備份域中4 KB的SRAM
?雙模Quad SPI存儲(chǔ)器接口運(yùn)行頻率高達(dá)133 MHz
?具有高達(dá)32位數(shù)據(jù)總線:SRAM、PSRAM、SDRAM/LPSSDR SDRAM、NOR/NAND閃存
?CRC計(jì)算安全單元
?ROP、PC-ROP、主動(dòng)夯實(shí)機(jī)通用輸入/輸出
?多達(dá)168個(gè)具有中斷功能的I/O端口重置和電源管理
?3個(gè)獨(dú)立的電源域,可以獨(dú)立時(shí)鐘門控或關(guān)閉:
–D1:高性能能力
–D2:通信外圍設(shè)備和定時(shí)器
–D3:復(fù)位/時(shí)鐘控制/電源管理
?1.62至3.6 V應(yīng)用電源和I/O
?POR、PDR、PVD和BOR
?嵌入3.3 V的專用USB電源提供內(nèi)部PHY的內(nèi)部調(diào)節(jié)器
?嵌入式調(diào)節(jié)器(LDO),可配置提供數(shù)字電路的可縮放輸出
?運(yùn)行和停止模式下的電壓縮放(6可配置范圍)
?備用調(diào)節(jié)器(~0.9 V)
?模擬外圍設(shè)備/VREF的參考電壓+
?低功耗模式:睡眠、停止、待機(jī)和支持電池充電的VBAT低功耗
?VBAT電池充電工作模式能力
?CPU和域電源狀態(tài)監(jiān)控引腳
?待機(jī)模式下2.95μA(備份SRAM關(guān)閉,RTC/LSE打開)
時(shí)鐘管理
?內(nèi)部振蕩器:64 MHz HSI,48 MHz
HSI48、4 MHz CSI、32 kHz LSI
?外部振蕩器:4-48 MHz HSE,32.768 kHz LSE
引腳配置

總線矩陣

電源供應(yīng)示意圖

同步非多路復(fù)用PSRAM寫入時(shí)序

8 MHz晶體的典型應(yīng)用

封裝設(shè)計(jì)參數(shù)

STM32H743IIT6 是一款 STM32 系列微控制器(MCU)。這款微控制器基于 Arm Cortex-M7 內(nèi)核,并具有豐富的外設(shè)和功能,適用于廣泛的嵌入式應(yīng)用。
內(nèi)核:基于 Arm Cortex-M7 內(nèi)核,具有高性能和低功耗特性。Cortex-M7 內(nèi)核支持硬件浮點(diǎn)運(yùn)算、高級(jí)調(diào)試和低功耗操作等功能。
時(shí)鐘頻率:可以運(yùn)行在高達(dá) 400 MHz 的時(shí)鐘頻率,這使其適用于需要高性能的應(yīng)用。
閃存和RAM:具有大容量的閃存存儲(chǔ)器,用于存儲(chǔ)程序代碼和數(shù)據(jù)。同時(shí),還配備了大容量的RAM,用于數(shù)據(jù)存儲(chǔ)和處理。
外設(shè):STM32H743IIT6 集成了多種外設(shè),包括通用定時(shí)器、高級(jí)定時(shí)器、通用串行接口、SPI、I2C、USB、CAN、以太網(wǎng)、LCD 控制器等。
安全性:支持硬件加密和解密,數(shù)字簽名、隨機(jī)數(shù)生成等硬件安全功能,有助于保護(hù)應(yīng)用程序和數(shù)據(jù)的安全性。
功耗優(yōu)化:雖然具有高性能,但也具備低功耗操作模式,可以在電池供電的嵌入式系統(tǒng)中實(shí)現(xiàn)節(jié)能。
封裝:STM32H743IIT6 通常采用 LQFP 封裝,適合手工焊接和自動(dòng)化生產(chǎn)。
開發(fā)支持:意法半導(dǎo)體提供了豐富的開發(fā)工具、軟件庫和支持,幫助開發(fā)者輕松開始使用和開發(fā)應(yīng)用。
廣泛應(yīng)用:由于其高性能、豐富的外設(shè)和安全功能,STM32H743IIT6 適用于工業(yè)自動(dòng)化、醫(yī)療設(shè)備、消費(fèi)電子、通信設(shè)備等各種領(lǐng)域的嵌入式系統(tǒng)。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來源于網(wǎng)絡(luò)引用或其他公開資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。
相關(guān)資訊
: