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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Intel16位單片機(jī)的特殊串行通訊方式

          Intel16位單片機(jī)的特殊串行通訊方式

          作者: 時(shí)間:2012-03-14 來源:網(wǎng)絡(luò) 收藏

          有關(guān)接收和發(fā)送的數(shù)據(jù)存放在由DATA(L)和DATA(H)構(gòu)成的數(shù)據(jù)單元中。其數(shù)據(jù)單元的寬度可達(dá)16位。波特率的設(shè)定參數(shù)放在BAUD(L)和BAUD (H)中。196MC/MD的控制參數(shù)主要放在PTSCON和PTSCON1寄存器中。對(duì)這兩個(gè)寄存器進(jìn)行操作可以設(shè)定各種。下面主要介紹這兩個(gè)寄存器。

          PTSCON的操作格式如下:

          43.jpg

          其中:M2M1M0=011為發(fā)送;M2M1M0=001為接收;SA=1為同步SIO;SA=0為異步SIO。

          MAJ=1為允許多數(shù)表決采樣;MAJ=0為禁止多數(shù)表決采樣。

          PTSCON1具有異步和同步操作兩種模式。異步方式的PTSCON1操作格式為:

          44.jpg

          同步方式的PTSCON1格式為:

          45.jpg

          其中:PRAR為接收奇偶校驗(yàn)控制/狀態(tài)位;

          PEN為奇偶校驗(yàn)選通們,PEN=1時(shí)選通;PEN=0時(shí)禁止;

          FE為出錯(cuò)標(biāo)志,F(xiàn)E=1說明傳輸出錯(cuò);

          TPAR為發(fā)送奇偶校驗(yàn)控制位;

          TRC是發(fā)送/接收控制位。

          3 實(shí)現(xiàn)196MC/MD的

          在利用196MC/MD實(shí)現(xiàn)串行通訊時(shí),首先選擇EPA中的一個(gè)捕獲比較模塊作為串行通訊,再選擇一個(gè)比較模塊作為串行通訊發(fā)送模塊。這樣就能構(gòu)成串行通訊的硬件端口。然后,對(duì)所選的EPA模塊開辟相應(yīng)的PTS通道,再根據(jù)通訊要求編寫串行通訊的發(fā)送和接收PTS模塊。最后使EPA和PTS兩者協(xié)同工作便能實(shí)現(xiàn)對(duì)串行通訊的控制。

          下面以異步串行通訊為例介紹其實(shí)現(xiàn)方法:首先為串行接收方式選擇一個(gè)捕獲/比較模塊作為串行接收引腳。然后利用捕獲功能捕捉起始位,當(dāng)捕捉到起始位后將該模塊轉(zhuǎn)換為比較方式,并利用比較方式的精確定時(shí)來確定第一個(gè)采樣時(shí)刻。最后按照選定的時(shí)間間隔對(duì)輸入數(shù)據(jù)的位進(jìn)行采樣(要確保每次采樣都發(fā)生在數(shù)據(jù)位周期中心),這樣就可以正確接收串行數(shù)據(jù)了。這個(gè)采樣過程是通過對(duì)應(yīng)的EPA中斷和PTS配合來實(shí)現(xiàn)的。圖2是接收過程的時(shí)序圖。



          評(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); })();