<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 一種基于狀態(tài)機(jī)的串口通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)

          一種基于狀態(tài)機(jī)的串口通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)

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

          3

          下位機(jī)采用ATMEL公司的AVR系列單片機(jī)ATmega168作為其核心控制單元;上位機(jī)軟件采用Delphi 7.0編寫(xiě),Delphi 7.0是Borland公司開(kāi)發(fā)的Windows平臺(tái)的面向?qū)ο蟮目焖賾?yīng)用程序開(kāi)發(fā)工具。本上位機(jī)程序采用Delphi開(kāi)發(fā),主要考慮到Delphi易于多線程編程。另外,Delphi開(kāi)發(fā)程序的簡(jiǎn)單、高效,也是上位機(jī)軟件選擇其作為開(kāi)發(fā)工具的重要原因。

          包括發(fā)送與接收兩部分。在本系統(tǒng)中,下位機(jī)負(fù)責(zé)發(fā)送數(shù)據(jù),上位機(jī)負(fù)責(zé)接收數(shù)據(jù),而另一種情況:下位機(jī)接收、上位機(jī)發(fā)送,其處理方法與前面一種相似。因此,這里僅介紹下位機(jī)發(fā)送數(shù)據(jù)、上位機(jī)負(fù)責(zé)接收數(shù)據(jù)的。

          下位機(jī)發(fā)送程序由于不考慮機(jī),實(shí)現(xiàn)較為簡(jiǎn)單,其示例代碼如下:

          j.jpg

          c.JPG

          上位機(jī)軟件中,當(dāng)接收到數(shù)據(jù)時(shí),控件會(huì)觸發(fā)一個(gè)事件,在事件處理代碼中應(yīng)及時(shí)將收到的數(shù)據(jù)存入接收沖區(qū),同時(shí)不應(yīng)該把串口協(xié)議接收部分的代碼放置在此事件中,否則后面到來(lái)的數(shù)據(jù)可能因?yàn)榍懊嫦鹊降臄?shù)據(jù)沒(méi)有及時(shí)處理完畢而被沖掉,導(dǎo)致數(shù)據(jù)丟失。因此,在上位機(jī)軟件運(yùn)行時(shí),應(yīng)該啟動(dòng)一個(gè)Windows線程,用于不斷檢測(cè)接收緩沖區(qū)是否為空,不為空時(shí)則對(duì)緩沖中的數(shù)據(jù)進(jìn)行處理,創(chuàng)建一個(gè)名為TBufferThread的線程類:

          e.JPG

          f.JPG

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理




          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();