91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

如何在嵌入式系統上實現異步串口通信

MCU開發加油站 ? 來源:未知 ? 作者:佚名 ? 2017-12-04 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從軟件的角度來看,所有的通信都是一串字節(叫做數據幀)的連續傳輸。軟件需要采用適當的機制來保證接收端能夠正確識別出一個完整的數據幀、能夠檢查接收到的數據幀是正確的、在傳輸發生錯誤時有合適的恢復機制。為此就需要定義一個合適的數據幀格式。

數據幀的提取

為了識別出一個完整的數據幀,基本上有兩個機制:一是在軟件上規定字節之間的間隔最大值,一旦兩個字節間的間隔超過某個閾值,就認為一個數據幀結束;另一種機制不對字節間的間隔作規定,而是用特殊的字節來定義數據報的開始和結束,當收到該特殊字節時,就認為一個數據幀的傳輸已完成。采用第一種機制的,比如Modbus-RTU。就是規定了同一個數據幀的字節間隔不能大于1.5個字節的傳輸時間,一旦大于該間隔,則認為前一個幀的傳輸已經結束,或者出錯。同時為了保證不同數據幀之間有足夠的間隔,還規定了兩個數據幀之間最少插入3.5個字節的空閑位。下圖摘自Modbus協議,表示了一個正確的數據幀、錯誤的數據幀以及數據幀之間的間隔。同時在數據報中引入了CRC,用于檢出數據幀層面的傳輸錯誤。

第二種機制需要選用一個特殊字節作為幀頭幀尾(也可以給幀頭幀尾選用不同的字節),比如說,選用0xFF作為幀頭幀尾字節,也即發送端在每個數據幀的頭尾都插入至少一個0xFF,接收端收到該字節就結束上一個幀的接收,同時從下一個非0xFF字節開始一個新的數據幀的接收。但該機制有一個問題,那就是所選的特殊字節(此處是0xFF)也可能是數據幀中的一個有效字節,如果不作特殊處理,接收端就可能把這個數據幀中的字節誤認為是數據幀的結束標識,從而導致接收錯誤。因此,此處采取字節替換的特殊處理,以消除在數據幀的中間出現的特殊字節,以下是一個例子。

在此處,選0xFE作為字節替換的標識字節,將0xFF替換成0xFE 0x0F。由于0xFE是字節替換的標志,也成了一個特殊字符,同樣需要進行替換。在上圖中,將0xFE替換成0xFE 0x0E。

采用該機制時,發送端對數據幀中的所有0xFF,0xFE進行替換。在接收端則進行反向替換。如果在接收端的0xFE后面的字節收到非0x0F,0x0E的字符,說明發生了傳輸錯誤,丟棄已經接收的內容,重新搜索幀頭字符開始一個新數據幀的接收。

數據幀的校驗

考慮到串口通信有一定的誤碼率,無論是采用那種傳輸方式,必須有錯誤幀檢出機制。通常選用的是CRC。一般用2個字節或4個字節。

串口驅動的實現

嵌入式系統中,串口驅動的實現一般有兩個途徑:一個是通過串口的收發中斷與串口控制器的Buffer直接交換數據;另一種是通過DMA,利用DMA與串口Buffer交互自動收發數據。

與串口控制器直接交互的方式,實現簡單,既可以實時進行字節替換以節省內存,也可以方便設置字節間的定時器。但頻繁打斷CPU,對有一定BUFFER大小的串口,還可以利用BUFFER進行性能優化,而對一些只有一個字節或兩個字節BUFFER的串口,就需要一個字節起一次中斷,如果CPU負荷較重,很容易由于中斷處理不及時而導致字節丟失,特別是在高波特率的情況。

利用DMA與串口控制器交互的方式,由于不能實時進行字節替換,需要在放入DMA之前完成字節替換,導致占用較大內存空間。另外對于字節間間隔敏感的傳輸策略,需要用另外的機制,比如PRS,去操作定時器。用DMA的另一個問題是在接收時無法實時確定幀尾(采用幀頭幀尾模式時),一般只能采用定時器與DMA配合,用字節流的方式處理接收。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴

原文標題:嵌入式系統上的異步串口通信的實現

文章出處:【微信號:mcugeek,微信公眾號:MCU開發加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    運行在嵌入式系統的emApps

    在當今快節奏的嵌入式系統世界中,靈活性和適應性是嵌入式系統實現的關鍵。SEGGER推出了其最新創新:Embedded apps(emApps
    的頭像 發表于 06-18 09:53 ?307次閱讀
    運行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>上</b>的emApps

    Python在嵌入式系統中的應用場景

    你想把你的職業生涯提升到一個新的水平?Python在嵌入式系統中正在成為一股不可缺少的新力量。盡管傳統嵌入式開發更多地依賴于C和C++語言,Python的優勢在于其簡潔的語法、豐富的
    的頭像 發表于 03-19 14:10 ?723次閱讀

    ARM嵌入式通信協議及應用

    隨著科技的飛速發展,嵌入式系統在各個領域扮演著越來越重要的角色。ARM處理器因其高性能、低功耗的特點,在嵌入式系統中得到了廣泛應用。通信協議
    的頭像 發表于 12-28 09:18 ?965次閱讀

    新手怎么學嵌入式?

    實現一些簡單的功能,如點亮一個 LED 燈、讀取傳感器數據等,來加深對嵌入式技術的理解。你還可以參加一些線上或線下的嵌入式項目實踐活動,與其他愛好者一起學習和交流。 5. 學習嵌入式
    發表于 12-12 10:51

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    系統開發與硬件關系的幾個關鍵點: 硬件依賴性 :嵌入式系統的軟件必須能夠在特定的硬件運行,這包括處理器、內存、輸入/輸出接口等。軟件必須能夠充分利用硬件的特性,同時繞過其限制。 資源
    的頭像 發表于 12-09 09:38 ?984次閱讀

    【「嵌入式系統設計與實現」閱讀體驗】+ 學習一個STM32的案例

    感謝電子發燒友論壇和電子工業出版社的贈書。 在[一篇帖子](【新提醒】【「嵌入式系統設計與實現」閱讀體驗】+ 初步印象 - 社區活動專版 - 電子技術論壇 - 廣受歡迎的專業電子論壇
    發表于 12-06 22:22

    何在嵌入式系統實現RS232通信

    嵌入式系統實現RS232通信,通常涉及硬件連接、驅動程序配置、串口初始化以及數據收發等多個步驟。以下是一個
    的頭像 發表于 11-21 09:35 ?1262次閱讀

    嵌入式系統與物聯網的結合

    隨著科技的飛速發展,嵌入式系統和物聯網(IoT)已經成為現代技術領域的重要組成部分。嵌入式系統是指嵌入到設備或
    的頭像 發表于 11-06 10:23 ?1119次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    在現代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式系統,顧名思義,是將計算機的硬件和軟件
    的頭像 發表于 10-16 10:14 ?2627次閱讀

    嵌入式系統的啟動流程

    嵌入式系統的啟動流程是一個復雜但有序的過程,它涉及從系統電到操作系統內核及應用程序啟動的多個階段。
    的頭像 發表于 10-05 17:44 ?968次閱讀

    嵌入式系統的未來趨勢有哪些?

    (ML)技術的快速發展,嵌入式系統將更多地整合這些先進技術,以支持智能決策和自動化。在設備直接運行AI和ML模型,進行圖像識別、自然語言處理、預測分析等任務,將極大提升嵌入式
    發表于 09-12 15:42

    嵌入式系統是什么?

    分包含軟件運行環境以及操作系統,硬件部分包含信號處理器、存儲器以及通信模塊等多方面內容。與傳統的計算機系統相比,嵌入式系統與之相差很大,它并
    的頭像 發表于 08-29 16:26 ?1012次閱讀

    學習hypervisor嵌入式產品安全設計

    Hypervisor的設計與實現,涵蓋嵌入式Hypervisor架構與核心組件、中斷隔離技術、內存隔離技術、循環表調度器、健康監控、分區間通信技術、內核資源管理模型、系統初始化過程、內
    發表于 08-25 09:11

    嵌入式機電一體化系統設計與實現》讀后感

    先給大家看看封面哦 再看居然還有簽名呢 還貼心的送了書簽哦,愛了愛了 在閱讀了曾慶祥教授所著的《嵌入式機電一體化系統設計與實現》一書后,我深感收獲頗豐,對嵌入式
    發表于 08-21 08:45

    嵌入式系統中的實時操作系統

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。在本節中,您將了解嵌入式軟件開發人員使用哪些流行RTOS以及它們運行的嵌入式
    的頭像 發表于 08-20 11:28 ?895次閱讀
    主站蜘蛛池模板: 免费看你懂的 | 久久国产精品99久久久久久老狼 | 四虎一影院区永久精品 | 日韩精品毛片 | 久久久国产精品免费 | 成人午夜精品久久久久久久小说 | tube69hdxxxx日本 | 东莞a级毛片 | 最近免费 | 日本不卡一 | 久久久久久久久久久9精品视频 | 在线成人看片 | 欧美片欧美日韩国产综合片 | 色婷婷一区二区三区四区成人 | 激情综合激情 | 欧美亚洲第一区 | 色婷婷视频| 天天鲁天天爽天天视频 | 涩涩高清无乱码在线观看 | 免费操人视频 | brazzersvideosexhd欧美高清 | 亚洲四虎在线 | 亚洲福利一区福利三区 | 女性一级全黄生活片免费看 | 久久女同 | 欧美激情二区三区 | 天天骑天天干 | 色综合久久久久久久久五月 | www.91大神| 免费日韩毛片 | 中文字幕卡二和卡三的视频 | 多男一女一级淫片免费播放口 | 性色在线视频精品 | 天天干网址 | 亚欧色视频在线观看免费 | 日本aaaaa高清免费看 | 在线视频一二三区 | 一区二区高清在线观看 | 亚洲伊人久久大香线蕉综合图片 | 日韩大胆 | 欧美另类v |