新聞中心

        EEPW首頁 > 設計應用 > 基于Intel8274的機載同步通訊系統(tǒng)設計

        基于Intel8274的機載同步通訊系統(tǒng)設計

        作者:中國航空計算技術研究所,姜運生 時間:2003-06-13 來源:電子設計應用 收藏
        摘 要: 本文介紹了某機載雷達智能系統(tǒng)的硬件設計和軟件算法。該系統(tǒng)滿足了機載航空雷達數據通訊、處理和保存的需要,成本低、速度快。在系統(tǒng)設計中具有典型性和實用性。

        關鍵詞:

        異步串行通訊,諸如RS232、RS485等以簡單實用而眾所周知。同步串行通訊以異步不可比擬的高速度而應用在許多速度要求較高的通訊網絡。同步通信無需開始位和停止位,直接由對數據采樣,數據傳輸率等同于時鐘速率。其顯著特點就是兩端必須共享同一時鐘,發(fā)送方必須將時鐘和數據同時發(fā)送,接收方才能正確采樣。同步模式分為字節(jié)同步和位同步。國際標準化組織的HDLC(高級)協(xié)議是應用最普遍的同步協(xié)議,幀結構如表1所示,其中標志字節(jié)值為7EH。

        Intel8274簡介
        Intel8274是實現(xiàn)HDLC同步通信協(xié)議的最佳接口芯片,圖1是其管腳定義,有以下顯著特點:
        ?有異步、字節(jié)同步和位同步工作模式;
        ?2個獨立的、全雙工的接收器和發(fā)送器;
        ?和許多CPU接口兼容;
        ?4個獨立的DMA通道;
        ?波特率可達880K;
        ?異步模式下,具備通用串口的所有信號;
        ?在位同步時,自動產生并識別HDLC的開標志和關標志、自動進行和刪除、自動為發(fā)送數據產生CRC校驗碼并自動對接收數據進行CRC校驗、和CCITT的X.25兼容。
        Intel8274的是為了把標志字節(jié) 7EH和正式數據中的7EH( 0111.1110B)區(qū)分開來。在發(fā)送一方,除標志字節(jié)之外的所有發(fā)送字節(jié),每碰到有五個連續(xù)的“1”就自動插入一個“0”,從而保證了兩個標志字節(jié)之間的其它字節(jié)沒有7EH。在接收一方,接收到標志字節(jié)之后,每碰到字節(jié)中有五個連續(xù)的“1”后的一個“0”,將這個“0”刪除掉,恢復字節(jié)原值。發(fā)送方和接收方的CRC校驗都不包含這個額外插入的“0”和被刪除的“0”。硬件實現(xiàn)時很容易用鎖相環(huán)電路檢測出標志字節(jié),方便地判斷同步數據幀的開始和結束。

        圖1 Intel8274管腳定義

        圖2 智能通訊板結構

        系統(tǒng)硬件結構
        Intel8274不僅性能優(yōu)越,而且和各種CPU接口比較簡單。基于該芯片的某機載雷達設計的同步通信系統(tǒng)如圖2所示,整個系統(tǒng)采用二級CPU結構,將主CPU從煩瑣的通訊管理中解放出來。主CPU和通訊CPU共享雙口RAM,在此交換數據。主CPU只需將發(fā)送的同步數據幀填入發(fā)送緩沖區(qū),由通訊CPU監(jiān)控同步幀發(fā)送。當通訊CPU正確接收到完整的數據幀時直接放入接收緩沖區(qū),然后通過中斷通知主CPU取走即可。
        硬件細化設計時應該注意:
        ?時鐘
        在圖2中,Intel8274的工作時鐘由3.6864MHz的時鐘直接輸入,而2個通道的發(fā)送時鐘由8254對工作時鐘進行分頻后給出。這樣可以由軟件對8254進行設置,靈活配置出各種適當的波特率。特別注意,經過差分驅動的信號應包括發(fā)送時鐘,而接收時鐘應該和接收數據一起由外部提供。
        ?中斷
        同步通信不能使用查詢的方法,只能使用中斷驅動。必須把Intel8274的中斷請求信號/INT(Pin28)和中斷應答/INTA(Pin27)各自上拉10KW電阻,而將菊花鏈的中斷輸入/IPI(Pin29)接地。/INT未上拉時,Intel8274不能產生有效的低電平,CPU不可能響應中斷。/INTA未上拉時Intel8274可能向的數據線輸出中斷向量,擾亂CPU工作。而/IPI未接地時Intel8274的中斷請求有可能被抑制,時有時無,破壞系統(tǒng)的穩(wěn)定性。

        軟件設計
        通信軟件主要使用TMS320的匯編語言實現(xiàn),精華在于對Intel8274的中斷處理上。軟件初始化8274為同步模式時,應選擇CCITT的CRC,而不是CRC-16。為準確簡潔,我們采用最通用的算法描述語言。
        同步數據幀發(fā)送算法
        為了開始同步幀的發(fā)送,在所有情況下(包括DMA)都應該由CPU向8274寫入第一個字符。在HDLC協(xié)議中,第一個字符就是接收站點的節(jié)點地址,而不是開標志。開、關標志由8274自動插入。
        Const // 常量定義
        DONE = ... // 表示發(fā)送或接收過程已結束
        DONE; // 幀發(fā)送過程尚未結束,正在運行,
        RxDone := NOT_DONE; // 幀接收過程尚未結束
        Reset Tx Intterrupt; // 復位發(fā)送中斷
        Reset Tx CRC; // 復位CRC發(fā)生器。
        Send Addr; // 發(fā)送幀地址,引爆幀發(fā)送開始。
        Reset TxUnder-Run/EOM; // 立即復位下溢中斷,保證正確產生CRC
        {此后,幀發(fā)送的實際過程由中斷完成,I8274硬件接口應該在規(guī)定的最大時間內應產生“下溢/幀結束”中斷,否則發(fā)生錯誤,應復位8274 }
        while not TimeOut do
        begin
        if TxDone = DONE then // 由中斷過程設置 TxDone標志
        begin
        Wait CRC; // 等待CRC發(fā)送結束
        Check TxResult; // 檢查發(fā)送結果是否正確。
        Exit;
        end;
        end;
        Reset 8274; // 至此,則超時退出,發(fā)生錯誤,復位8274。
        end;
        Intel8274中斷響應算法
        HDLC協(xié)議的同步通訊必須由中斷驅動,主要是同步通訊的協(xié)議和校驗由硬件完成,軟硬件必須配合得當。中斷主要處理4類情況,一是利用“發(fā)送緩沖器空”中斷來發(fā)送幀數據,二是用“外部狀態(tài)變化”中斷來判斷幀發(fā)送結束,三是用“數據接收”中斷來接收數據幀,四是用“接收到特殊條件”中斷來判斷幀接收的開始和結束。在使用多個接收幀緩沖時,中斷處理要注意緩沖區(qū)切換正確。
        procedure IntrruptTxRxFrame
        begin
        Read Interrpt Type; // 從8274讀中斷類型
        case Interrpt Type of // 檢查中斷類型
        1:Tx Empty: // “發(fā)送緩沖器空”中斷
        if 數據未發(fā)送完 then
        Send One byte // 從發(fā)送緩沖區(qū)讀取、并發(fā)送1字節(jié)
        else
        Reset Tx Empty Interrupt; // 復位此中斷,迫使產生下溢中斷;
        2:External Status Chang // “外部狀態(tài)變化”中斷
        if 是下溢中斷 then
        TxDone := DONE // 幀發(fā)送結束,結果正確
        else begin
        TxDone := DONE; // 幀發(fā)送結束
        TxResult := FAIL; // 但結果不正確
        end;
        3:RxChar // “接收到幀數據字符”
        讀入并存到接收幀緩沖區(qū);
        4:RxSpecial: // "接收到特殊條件" 中斷
        if End of Frame then // 幀接收結束
        RxDone := DONE // 接收過程完成,結果正確
        else begin
        RxDone := DONE // 接收過程完成
        RxResult := FAIL; // 但結果不正確.
        Reset Error Interrupt
        end;
        else // 其余中斷忽略掉。
        Ignore;
        end;
        Send EOI; // 發(fā)中斷結束命令.
        end;

        結語
        同步通訊技術在不斷地發(fā)展,席卷全球的Internet網就是采用同步協(xié)議X..25連接了不同類型的計算機。同步通訊和異步通訊相對立而存在,相比較而發(fā)展。這里只是拋磚引玉,介紹了我們實際工作的一點體會和做法。同步通訊將向更高速率發(fā)展,應用在更多的日常電子設備中。

        參考文獻
        1 Intel: 《8274 Multi-Protocol Serial Controller》
        2 TI: 《TMS320F240 DSP Controllers Refence Guide》




        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 凯里市| 玉田县| 舞钢市| 江油市| 西峡县| 水富县| 威远县| 怀柔区| 东平县| 家居| 额尔古纳市| 迭部县| 莱阳市| 监利县| 合江县| 长沙县| 济阳县| 铅山县| 平和县| 保德县| 个旧市| 天等县| 华安县| 土默特左旗| 凤阳县| 凌海市| 乌苏市| 珠海市| 灵石县| 禄丰县| 怀仁县| 毕节市| 和顺县| 全南县| 名山县| 志丹县| 辽宁省| 连城县| 同德县| 历史| 凌源市|