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

          新聞中心

          EEPW首頁 > 設計應用 > 基于UR8的586-Engine異步串行通信擴展設計

          基于UR8的586-Engine異步串行通信擴展設計

          作者: 時間:2016-10-10 來源:網(wǎng)絡 收藏

          摘要:TERN公司開發(fā)的微控制模塊具有精度高可靠性高的特點,適用于工業(yè)程序控制和高精度數(shù)學計算。為了實現(xiàn)高實時性、高傳輸波特率的要求,本文提出了一種基于的異步串行通信擴展方案,并完成系統(tǒng)的軟硬件設計。文中詳細介紹了基于方法,給出了接口設計電路原理圖、初始化配置例程以及程序流程圖,并對設計細節(jié)進行了詳細闡述,最后給出試驗結果。

          本文引用地址:http://www.ex-cimer.com/article/201610/306147.htm

          關鍵詞;;;

          異步串行通信是一種串行數(shù)據(jù)傳輸協(xié)議,用于雙向通信,可以實現(xiàn)半雙工和全雙工傳輸,因其結構簡單、設計方便、價格低廉、占用資源少、傳輸距離遠等優(yōu)勢而得到廣泛應用。近年來串行通信正朝著帶寬、速度、穩(wěn)定性逐漸增強的方向發(fā)展。是TERN公司推出的一款為了高精度和高可靠性的植入式應用所設計的核心板卡,運算速率高,適用于工業(yè)程序控制和高精度的數(shù)學計算。該板卡提供了2路異步串行通信接口,這在很多應用場合遠遠不夠。

          為了增加串口數(shù)量并保證較高的傳輸速率,使用高性能的UR8擴展卡是一種可行方案,本文結合UR8卡在586-Engine上的成功應用,對UR8串口擴展方法進行詳細介紹。

          1 器件介紹

          586-Engine是TEBN公司生產的基于AMD Elan SC520處理器的C/C++可編程微控制模塊,成本低,功耗低,結構緊湊。它提供了多種算法指令用于處理各類數(shù)字格式以及正弦、余弦、正切、對數(shù)等超越函數(shù),擅長高強度的運算應用。

          586-Engine的主要參數(shù)指標如下:

          1)CPU是主頻為133 MHz的32位AMD ElanSC520處理器,兼容Inte180x86;

          2)尺寸為3.6*2.3*0.3英寸,適用溫度為-40℃-85℃;

          3)支持114字節(jié)內置RAM,高達512KB電池供電的SRAM,512 kB的Flash,不支持SDRAM、PCI、DMA。

          4)提供兩個工業(yè)標準通用異步串口(UART),最高達到1.152 Mbit/s。

          5)提供32路多功能I/O總線。包括總共19路12位模數(shù)轉換器,其中11路串行模數(shù)轉換和8路并行模數(shù)轉換;6路12位數(shù)模轉換器,其中2路串行數(shù)模轉換和4路并行數(shù)模轉換。

          6)可編程中斷控制器(PIC)支持22個中斷優(yōu)先級,包括15個外部中斷。共有7個定時器,其中1個可編程內部定時器,3個16位PIT定時器和3個16位GP定時器。

          UR8是TERN公司生產的8路異步串口擴展卡。它提供了多種串口工作方式,如RS232、RS485、RS422。其核心部件是2片TL16C754B 芯片,每片TL16C754B具有4路異步串口,每個通道具有64字節(jié)的發(fā)送FIFO和64字節(jié)的接收FIFO。在FIFO模式下,可以減小CPU的中斷數(shù)量并降低軟件開銷。它有3種工作模式:查詢模式、中斷模式和DMA模式,并可編程選擇中斷和DMA模式的FIFO深度。它提供了可編程的波特率發(fā)生器用于產生14種不同的波特率,最高波特率可達230400bit/s,可見UR8的串口傳輸速度非常快。

          2 硬件設計

          2.1 UR8擴展卡串口的可配置方案

          UR8擴展卡提供了3種可配置的串口標準方案(即RS232、RS485、RS422)以滿足不同的需求。其中8個串口均可配置為RS232串口標準;COM2-COM5 4個串口可配置為RS485串口標準;COM2可配置為RS422串口標準。若采用后兩種方案與PC機進行通信需在中間加裝一個RS232/RS485轉換器。以上3種配置方案均已成功應用,本文僅以RS232為例對該方法進行介紹。

          2.2 接口電路原理框圖

          586-Engine的數(shù)據(jù)總線D0-D7連接到UR8的D0-D7,用于雙向數(shù)據(jù)交換,/RD和 /CS1分別和UR8內部HCT245芯片的DIR及G相連來選擇傳輸方向;586-Engine的地址總線A1、A2、A3、寫使能端/WR、讀使能端/RD以及RST與UR8的A0、A1、A2、寫使能端/WR、讀使能端/RD以及RST相連,實現(xiàn)TL16C754B的片內寄存器尋址和讀寫控制;586-Engine的地址總線A4、A5、A6、A7與UR8的A4、A5、A6、A7相連,經(jīng)過TL16C754B內部譯碼器芯片進行譯碼實現(xiàn)片選功能。

          UR8的8個串口(COM2-COM9)選用RS232通訊方式??梢圆捎脙煞N方案進行試驗,第一種是UR8的8個串口與8臺PC機同時通信,第二種是 UR8的8個串口級聯(lián)的接線方式,為了操作簡潔采用第二種方案,即:外部數(shù)據(jù)發(fā)送到COM2的接收端/RXD2,/TXD2連到/RXD3,/TXD3連到/RXD4,以此類推,最終數(shù)據(jù)由COM9的發(fā)送端/TXD9發(fā)送到PC機的接收端,通過串口調試助手檢測數(shù)據(jù)的正確性和完整性。整個接線關系如圖1所示。

          a.jpg

          3 軟件設計

          3.1 UR8的初始化配置

          TL16C754B內部寄存器地址如下表所示,每一個串口的定義都完全相同。

          b.jpg

          UR8的地址設置非常靈活,每個通道的基地址可以自由選擇,采用基地址加偏移量的方法可以確定各寄存器的地址,然后就可以對各寄存器進行讀寫操作。值得注意的是,A0沒有使用,各偏移量和基地址為偶地址,這樣就增加了系統(tǒng)的抗干擾能力。

          UR8是一款可靈活選擇配置的擴展卡,其每一通道的初始化配置均可根據(jù)實際需要來進行。下面以串口2為例,給出初始化配置。

          c.jpg

          3.2 串口函數(shù)說明

          void qur_init(char ch,unsigned char baud)//ch=2—9,串口初始化

          void put_ch(char ch,unsigned char dat)//串口數(shù)據(jù)發(fā)送函數(shù)

          unsigned char qur_hit(char ch)//檢查接收FIFO是否有數(shù)據(jù)

          unsigned char get_ch(char ch) //串口數(shù)據(jù)接收函數(shù)

          3.3 程序說明

          軟件設計流程圖如圖2所示,程序采用順序查詢模式,依次查詢COM2-COM9的接收FIFO中是否有數(shù)據(jù),如果有數(shù)據(jù)則存儲數(shù)據(jù)再將存儲的數(shù)據(jù)發(fā)出;如果接收FIFO中沒有數(shù)據(jù),則繼續(xù)檢查下一個串口。結合硬件的連線方式,一幀數(shù)據(jù)就會在8個串口間循環(huán)一次。每一通道都有各自的接收/發(fā)送FIFO和寄存器,各自數(shù)據(jù)的接收和發(fā)送不受影響。

          d.jpg

          3.4 調試結果

          調試過程中,PC機串口發(fā)送端與UR8的串口2的RXD2相連,發(fā)送的數(shù)據(jù)通過串口發(fā)送端依次通過COM2、COM3、COM4、COM5、COM6、 COM7、COM8、COM9,最終由COM9的發(fā)送端TXD9傳送到PC機的串口接收端,形成一個數(shù)據(jù)循環(huán)傳輸?shù)倪^程。PC機通過串口調試助手控制串口的發(fā)送和接收,具體調試原理如圖3所示。

          e.jpg

          串口調試助手當波特率設定為115 200 bit/s,一幀數(shù)據(jù)為01到40個字符時,逐步減小每幀數(shù)據(jù)的發(fā)送間隔,最終測試得到的最短時間間隔為20 ms。即每20 ms發(fā)送一幀數(shù)據(jù)。PC機接收到的數(shù)據(jù)顯示在窗口中,實驗最終結果如圖4所示。

          f.jpg

          從結果可以看出,接收窗口接收到的數(shù)據(jù)沒有誤碼,說明數(shù)據(jù)在各個串口的接收發(fā)送過程中沒有出現(xiàn)錯誤;界面最下面顯示S:153000 R:153000,發(fā)送和接收的字節(jié)數(shù)相等,說明沒有丟失數(shù)據(jù)。

          圖5給出了時間間隔減小到19 ms的實驗結果,從接收窗口可以看出第4行39、40兩個字符被01、02替代,說明串口發(fā)送一幀數(shù)據(jù)所需要時間已經(jīng)大于PC機發(fā)送一幀數(shù)據(jù)的時間間隔,串口還沒發(fā)完一幀數(shù)據(jù)已經(jīng)被強制執(zhí)行下一次的發(fā)送命令,第8、15、17、22行反映了同樣的問題。說明20 ms為這種擴展方案的極限值。

          h.jpg

          調試結果說明,使用UR8成功地擴展了586-Engine的異步串行通信能力。

          4 結論

          本文介紹的這種串行通信擴展方案具有明顯的優(yōu)越性:一是增加了8個串行通信接口,可以與更多的設備進行連接,極大地提高了586-Engine的異步串行通信能力;二是由于586-Engine內核處理數(shù)據(jù)的速度極快并盡最大限度的壓縮程序所占用時間,使得這種UR8串口擴展方案達到很高的傳輸速率,能夠滿足譬如飛控計算機這種高實時性、高運算量設備的設計需求;三是UR8不僅能擴展到586-Engine,還能直接擴展到A-Engine、i386- Engine、i386-Drive、586-Drive等TERN公司生產的板卡,省去了設計接口電路的麻煩。實驗證明,在實時性高、傳輸波特率高、 CPU運算量大的情況下,使用UR8進行串口擴展是一種很實用的方案。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();