chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>工控技術>STM32微控制器的可靠串口通信技術研究資料下載

STM32微控制器的可靠串口通信技術研究資料下載

2021-04-22 | pdf | 245.97KB | 次下載 | 2積分

資料介紹

引言STM32F107微控制器意法半導體推出的高性能32位以CortexM3為內核的面向工業(yè)控制處理器。該處理器內部通過一個多層的AHB總線構架相連,其內部集成了豐富的外設,如USART、SPI、ADC等等。另外,STM32F107處理器還提供多達80個通用I/O接口,如此豐富的資源使STM32系列微控制器能夠很理想地用于工業(yè)控制。本文設計出一種基于STM32F107的可靠串口通信設計方案,可以完成STM32F107處理器和PC機以及其他串口之間的可靠通信[1]。1 串口通信的實現(xiàn)1.1 硬件設計STM32F107處理器的通用同步異步通信單元(USART)提供 5個獨立的異步串行接口,并且都能工作在中斷和DMA模式下,支持LIN、智能卡協(xié)議和IRDA SIM ENDEC規(guī)范。USART的字符采用一種特殊的結構,它由起始位、數(shù)據(jù)位(8位或者9位)、停止位(1位或者2位)組成。由于STM32F107處理器輸出的是TTL/CMOS電平,而計算機的標準配置串口輸出為RS232電平,所以在硬件上采用MAX232進行電平轉換,電路設計比較簡單。如圖1所示,如果在兩個處理器之間進行串口通信,需要把STM32F107 的UART接口的發(fā)送端與對端串口的接收端相連,把STM32F107 的UART接口的接收端與對端串口的發(fā)送端相連[2]。1.2 軟件設計和實現(xiàn)要實現(xiàn)基于STM32F107 的串口通信,首先需要對該串口的相關寄存器進行配置,比如串口的波特率、數(shù)據(jù)位長度和校驗位等信息都是需要配置的。然后使能串口時鐘,設置相應的I/O模式,最后進行程序設計。串口相關寄存器的配置信息如表1所列。圖1 串口通信硬件電路圖為了實現(xiàn)高效的串口數(shù)據(jù)收發(fā),串口通信的程序設計一般采用串口的接收中斷、發(fā)送中斷以及FIFO緩存來實現(xiàn)。當串口有數(shù)據(jù)發(fā)送時,其底層的發(fā)送函數(shù)并不是真正的串口發(fā)送,而是將數(shù)據(jù)寫入緩存區(qū),緩存區(qū)按照FIFO的先入先出的結構進行組織,寫入數(shù)據(jù)到FIFO后使能串口發(fā)送中斷后便退出了,這相當于RAM的讀寫,執(zhí)行速度快,實際的發(fā)送數(shù)據(jù)在串口發(fā)送中斷服務程序中完成。表1 串口寄存器的配置表圖2 通信協(xié)議幀當串口有數(shù)據(jù)接收時,在接收中斷中使用FIFO緩存接收到的數(shù)據(jù)。當收到串口接收數(shù)據(jù)完成或者接收緩沖區(qū)已滿的信息后,通知主程序數(shù)據(jù)接收完成,在主程序中進行數(shù)據(jù)處理并清理緩沖區(qū)數(shù)據(jù),等待下一次數(shù)據(jù)接收。主程序中具體步驟如下:①配置串口中斷向量表,包括配置中斷的搶占優(yōu)先級,響應優(yōu)先級、編號和分組等內容。調用庫函數(shù)NVIC_Init(&NVIC_InitStructure)。②初始化串口,包括串口時鐘配置、GPIO配置、根據(jù)參數(shù)初始化并使能串口。由于 STM32F107 固件函數(shù)庫提供了每一步操作的函數(shù),所以串口的配置非常方便。最后,使能接收和發(fā)送中斷,調用庫函數(shù):STM_EVAL_COMInit(COMx, &USART_InitStructure);③在主程序中等待串口接收數(shù)據(jù)完成或緩存區(qū)溢出,該信息由串口狀態(tài)寄存器提供,代碼為:while (1){//判斷是否接收完成或緩存區(qū)溢出if (USART_Rx_Done==1) {//數(shù)據(jù)接收處理……//清空緩沖區(qū)USART_Rx_Buffer_Clear();}}④中斷服務函數(shù)編寫,通過判斷狀態(tài)寄存器USART _SR的RXNE、ORE和TXE位的狀態(tài)來進行接收和發(fā)送數(shù)據(jù)[3]。代碼如下:void USARTx_IRQHandler(void){//判斷是否收到數(shù)據(jù)if (USARTx ->SR&(1<<5)){//接收數(shù)據(jù)USART_ReceiveData(USARTx) ;} //判斷是否溢出if (USARTx ->SR&(1<<3)){//接收數(shù)據(jù)(void)USART_ReceiveData(USARTx);} //如果發(fā)送數(shù)據(jù)寄存器為空,那么左移7位if(USARTx ->SR&(1<<7)){//發(fā)送數(shù)據(jù)USART_SendBufferData();}}2 串口通信協(xié)議制定串口通信協(xié)議按照HDLC規(guī)程設計,其幀結構如圖2所示。幀結構說明如下。(1) 標志所有信息傳輸必須以一個標志字符開始,且以同一個字符結束。從開始標志到結束標志之間構成一個完整的信息單位,稱為一幀。接收端可以通過搜索標志字符來探知幀的開頭和結束,以此建立幀同步。在兩幀之間只需要一個這樣的標記,兩個相繼的標記構成一個空幀,它被拋棄,而不產(chǎn)生FCS錯誤。(2) 地址域在標志之后,有一個地址域。地址域包括接收信息和發(fā)送信息的通信設備地址,即幀數(shù)據(jù)的接收者和發(fā)送者地址。地址域的寬度為16位,前8位用來表示接收者的地址,后8位用來表示發(fā)送者的地址。地址域通常在一對多或多對多的串口通信中應用。(3) 控制域在地址域之后是控制域,控制域可規(guī)定若干個命令,控制域占一個字節(jié)。接收方必須檢查每個地址,包括二進制11111111(十六進制0xff),也就是“廣播”地址。不可識別的地址則被拋棄。(4) 信息域跟在控制域之后的是信息域。信息域包含要傳送的數(shù)據(jù),并不是每一幀都必須傳送數(shù)據(jù),即信息域可以為0。當它為0時,這一幀主要是控制命令。(5) CRC校驗緊跟在信息域之后的是4字節(jié)的幀校驗,幀校驗采用32位循環(huán)冗余校驗碼CRC。除了標志域以外,所有的信息都參加CRC計算。當數(shù)據(jù)傳輸時,CRC的高位在前,低位在后。幀校驗序列的循環(huán)冗余碼校驗簡稱CRC(Cyclic Redundancy Check),它是利用除法及余數(shù)的原理來作錯誤偵測的。應用時,發(fā)送設備計算出CRC值并隨數(shù)據(jù)一同發(fā)送給接收設備,接收設備對收到的數(shù)據(jù)重新計算,并與收到的CRC相比較。若兩個CRC值不同,則說明數(shù)據(jù)通信出現(xiàn)錯誤。這里選用以太網(wǎng)的CRC32碼作為幀校驗產(chǎn)生方式。3 硬件CRC循環(huán)冗余校驗由于串口通信中的數(shù)據(jù)在傳輸和存儲過程中易受到各種信號的干擾,容易產(chǎn)生信號碼元的變化,需要采用相關的校驗方式來保證信號傳輸?shù)目煽啃?。循環(huán)冗余校驗技術主要應用于檢驗或核實數(shù)據(jù)傳輸、存儲的正確性和完整性,具有檢錯率高、易于實現(xiàn)的特點,因此在工程中廣泛使用。在STM32F107 中內置了CRC計算單元的硬件組件,所以不需要額外設計任何硬件電路,而且計算速度較快。內置CRC計算單元是根據(jù)固定的生成多項式得到任一32位全字的CRC計算結果。CRC計算單元可以在程序運行時計算出軟件的標識,之后與在連接時生成的參考標識比較,然后存放在指定的存儲器空間[4]。STM32F107 內置的CRC計算單元操作方便,首先復位CRC模塊,即CRC->CR =0x01。然后,把要計算的數(shù)據(jù)每32位分為一組,寫入到CRC_DR寄存器中,寫完數(shù)據(jù)后就可以從CRC_DR寄存器讀出數(shù)據(jù)了。雖然數(shù)據(jù)的讀寫都是在CRC_DR寄存器中進行,但是實際上訪問的是不同的物理寄存器。STM32F107 內置CRC計算單元框圖如圖3所示。結語隨著32位以CortexM3為內核的STM32F107 微處理器在工業(yè)控制中的廣泛應用,串口作為一種微控制器必不可少的通信接口,應用也比較廣泛。針對串口在應用過程中容易出現(xiàn)的誤碼問題,本文設計出一種基于STM32F107 的可靠串口通信方案,利用STM32F107 內置的CRC計算單元產(chǎn)生校驗數(shù)據(jù)來保證通信的可靠性。該方案可以完成STM32F107 處理器與計算機之間以及其他微控制器串口之間的可靠通信。(mbbeetchina)
CAN 安防 工業(yè) 航空
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1AFSEMI晶岳原廠代理分銷經(jīng)銷一級代理分銷經(jīng)銷
  2. 131.14 KB  |  次下載  |  免費
  3. 2TDK東電化EPCOS愛普斯科原廠代理一級代理分銷經(jīng)銷通路商
  4. 375.14 KB  |  次下載  |  免費
  5. 32022 AMAZINGIC Product Catalog晶焱科技產(chǎn)品目錄
  6. 1.39 MB  |  次下載  |  免費
  7. 4Murata村田片狀多層陶瓷電容器由原廠代理分銷經(jīng)銷一級代理分銷經(jīng)銷供應
  8. 8.43 MB  |  次下載  |  免費
  9. 5海信LED42T29GP說明書
  10. 25.83 MB   |  次下載  |  10 積分
  11. 6海信LED42T29GP電路圖資料
  12. 0.64 MB   |  次下載  |  10 積分
  13. 7PC5200 700V_10A GaN HEMT驅動器數(shù)據(jù)手冊
  14. 1.63 MB   |  次下載  |  免費
  15. 8HT3112規(guī)格書V1
  16. 977.90 KB  |  次下載  |  免費

本月

  1. 1美的電磁爐電路原理圖資料
  2. 4.39 MB   |  19次下載  |  10 積分
  3. 2反激式開關電源設計解析
  4. 0.89 MB   |  11次下載  |  5 積分
  5. 3耗盡型MOS FET產(chǎn)品目錄選型表
  6. 0.14 MB   |  3次下載  |  免費
  7. 4簡易光伏控制器原理圖資料
  8. 0.07 MB   |  1次下載  |  5 積分
  9. 5FP7135V060-G1/FP7125替代物料pin to pin
  10. 495.40 KB  |  1次下載  |  免費
  11. 62EDL05x06xx系列 600V半橋門驅動器帶集成自舉二極管(BSD)手冊
  12. 0.69 MB   |  1次下載  |  免費
  13. 7壓力容器焊接手冊
  14. 6.47 MB   |  次下載  |  2 積分
  15. 8SFI立昌SFI-Company原廠代理分銷經(jīng)銷一級代理分銷經(jīng)銷
  16. 1.58 MB  |  次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191456次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81605次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73831次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分