<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式串口同步幀數方法解析,怎樣學(xué)好嵌入式技術(shù)?

嵌入式串口同步幀數方法解析,怎樣學(xué)好嵌入式技術(shù)?

作者: 時(shí)間:2017-10-11 來(lái)源:網(wǎng)絡(luò ) 收藏

  嵌入式串口同步幀數方法解析

  串口通信是日前和DSP等嵌入式系統之間,以及嵌入式系統與PC機或無(wú)線(xiàn)模塊之間的一種非常重要且普遍使用的通信方式。在嵌入式系統的硬件結構中,通常只有一個(gè)8位或16位的CPU,不僅要完成主流程的工作,同時(shí)還要處理隨時(shí)發(fā)生的各種中斷,因而嵌入式系統中的串口通信程序設計與PC機有很大的不同。若嵌入式系統中.中斷服務(wù)子程序在系統運行過(guò)程中占用了較多的時(shí)間,就有可能在中斷眼務(wù)子程序正運行時(shí),又產(chǎn)生一個(gè)同類(lèi)型或其他類(lèi)型的中斷,從而造成主程序得不到執行或后續中斷數據丟失。所以,嵌入式系統中的串口通信雖然看似簡(jiǎn)單,但其中仍有許多問(wèn)題值得研究,例如串口通信過(guò)程中的幀同步問(wèn)題。本文針對該問(wèn)題給出了逐次比較、基于FIFO隊列和基于狀態(tài)機的3種幀同步方法。通過(guò)測試、分析和比較得出,基于有限狀態(tài)機的方法是嵌入式系統串口通信中很有效的幀同步方法,同時(shí)也是一種很不錯的串口通信程序設計結構。

本文引用地址:http://dyxdggzs.com/article/201710/365210.htm

  1 串口通信的數據幀結構

  現代工業(yè)控制,往往需要由多個(gè)獨立的控制模塊來(lái)共同完成。它們之間通過(guò)串口通信完成復雜的控制過(guò)程,必須在通信過(guò)程中加入必要的通信協(xié)議,以提高系統的可靠性和穩定性;而要完成特定的通信協(xié)議,就得有一定的同步機制。下面介紹一下簡(jiǎn)化的串口通信數據幀結構,以便分析說(shuō)明嵌入式系統串口通信過(guò)程中的幀同步方法。

  假定串口發(fā)送的數據幀結構為:

  其中:包頭用于同步,一般是一個(gè)或多個(gè)ASCII字符,本文中假定數據幀同步頭有2字節(0xAA、0x55);包長(cháng)表示數據包中除去包頭和包長(cháng)的字節數,一般用約定好的幾個(gè)字節表示;類(lèi)型為通信協(xié)議里規定的命令類(lèi)型;數據為應發(fā)送的主要信息;校驗通常采用單字節“異或”的方法。

  2 串口通信中的幀同步方法

  2.1 逐次比較的幀同步方法

  首先等待串口數據,將接收到的第1個(gè)字節數據與約定好的包頭信息的第1個(gè)字節進(jìn)行比較。如果不正確,則等待新字節,直到接收的數據與包頭信息的第1個(gè)字節相同。第1個(gè)字節比較正確以后,將收到的第2個(gè)字節與包頭信息的第2個(gè)字節進(jìn)行比較。如果仍然正確,則說(shuō)明串口接收已經(jīng)同步,可以開(kāi)始接收數據幀中的數據部分;否則,重新開(kāi)始同步過(guò)程。其程序流程如圖1所示。

  此種方法代碼量小,編程簡(jiǎn)單,一般用于在主程序中以非中斷方式接收串口數據、實(shí)時(shí)性很差、數據幀較短的場(chǎng)合。但是,在串口速度過(guò)快且包頭字節數比較多的情況下,串口實(shí)現同步花費的時(shí)間很長(cháng)或很難實(shí)現同步。例如,串口接收到序列Ox0O OxAA0xAA 0x55…,當遇到第一個(gè)“0xAA”時(shí),該方法認為第1個(gè)字節正確開(kāi)始比較第2個(gè)同步頭。第2個(gè)字節仍是“0xAA”而不是“0x55”,所以必須等待新的字節重新開(kāi)始比較第1個(gè)同步頭。而緊隨其后的是“0x55”,因而,此時(shí)包頭的第1個(gè)字節也沒(méi)有同步上。事實(shí)上,“0x00 OxAA”是干擾字節,“0xAA 0x55”才是通信協(xié)議中的同步頭。

  怎樣學(xué)好嵌入式技術(shù)?

  隨著(zhù)現代社會(huì )信息化進(jìn)程的加快,嵌入式系統被廣泛的地應用于軍事、家用、工業(yè)、商業(yè)、辦公、醫療等社會(huì )各個(gè)方面,表現出很強的投資價(jià)值。從國際范圍來(lái)看,作為數字化電子信息產(chǎn)品核心的嵌入式系統目前其硬件和軟件開(kāi)發(fā)工具市場(chǎng)已經(jīng)突破2000億美元,嵌入式系統帶來(lái)的全球工業(yè)年產(chǎn)值更是達到了一萬(wàn)億美元,隨著(zhù)全球經(jīng)濟的持續增長(cháng)以及信息化的加速發(fā)展,嵌入式系統市場(chǎng)必將進(jìn)一步增長(cháng)。

  根據中國物聯(lián)網(wǎng)校企聯(lián)盟的建議,學(xué)習嵌入式系統的必備條件與學(xué)習方法如下:

  1、C開(kāi)發(fā)經(jīng)驗

  條件:Linux

  方法:主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開(kāi)發(fā))

  2、網(wǎng)絡(luò )、操作系統、體系結構

  條件:Linux,各種書(shū),算法、例程。

  方法:通過(guò)C編程實(shí)現簡(jiǎn)單的網(wǎng)絡(luò )等知識的算法和過(guò)程。

  3、嵌入式系統概念

  條件:各個(gè)嵌入式網(wǎng)站,討論組,書(shū)籍

  方法:少提問(wèn),多留給自己思考的空間。

  4、嵌入式開(kāi)發(fā)實(shí)踐

  條件:各種嵌入式系統開(kāi)發(fā)工具的demo版,包括編譯器,仿真器。

  方法:一個(gè)是基于MCU/MDSP的嵌入式系統開(kāi)發(fā),另一個(gè)是像Palm OS,WinCE,uC/OS II等RTOS下的應用軟件開(kāi)發(fā)。第一個(gè)是針對硬件開(kāi)發(fā)而言的,而第二個(gè)則是針對軟件開(kāi)發(fā)而言的。

  5、硬件開(kāi)發(fā)

  條件:各種嵌入式、存儲器等電路器件,protel99等電路設計軟件,電路板制作。

  方法:這時(shí)候該有開(kāi)發(fā)條件了,最起碼是51系列,這個(gè)比較方便。電路的設計內容較多,不過(guò)看起來(lái)嚇人,實(shí)際上比軟件要簡(jiǎn)單的多。只要下功夫,實(shí)踐會(huì )告訴你一切。



關(guān)鍵詞: linux 單片機 芯片

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>