• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Cortex-M3的ARINC429總線協(xié)議轉(zhuǎn)換模塊的實現(xiàn)

      2013-03-30 06:09:32趙宗紅王大明
      機械與電子 2013年2期
      關(guān)鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)驅(qū)動程序

      趙宗紅,王大明

      (西安工業(yè)大學(xué)電子信息工程學(xué)院,陜西 西安 710032)

      0 引言

      目前,國內(nèi)主要采用單片機+FPGA或采用DSP技術(shù)實現(xiàn)ARINC429信號的轉(zhuǎn)換,不僅結(jié)構(gòu)和設(shè)計復(fù)雜,需要擴展電路,且價格昂貴。而根據(jù)USB,RS232和ARINC429的特點,以Cortex-M3微處理器為核心,設(shè)計了的 USB/RS232轉(zhuǎn)ARINC429總線模塊,具有硬件設(shè)計簡單、易于開發(fā)和成本低等優(yōu)點。為了提高傳輸速率、數(shù)據(jù)轉(zhuǎn)換速率和數(shù)據(jù)的存儲容量,擬采用意法半導(dǎo)體公司的STM32F103芯片。由于它采用3級流水線和哈佛結(jié)構(gòu),加上具有豐富的外設(shè)資源,提高了系統(tǒng)的靈活性和可靠性。

      1 硬件設(shè)計

      1.1 整體框架設(shè)計

      模塊的硬件設(shè)計平臺主要由ARM芯片STM32F103、支持ARINC429總線協(xié)議的串行收發(fā)器 DEI1016、具有 TTL/CMOS電平轉(zhuǎn)標準ARINC429電平功能的電平轉(zhuǎn)換芯片、RS232的收發(fā)器、1個用于切換速率的模擬開關(guān)以及各種信號的隔離芯片組成。主控芯片用于接收USB和RS232串行信號到緩沖區(qū),經(jīng)過內(nèi)部轉(zhuǎn)換把串行信號轉(zhuǎn)換成并行信號發(fā)送給DEI1016;接收DEI1016發(fā)送的并行信號,轉(zhuǎn)換成USB和RS232串行信號發(fā)送出去。系統(tǒng)整體結(jié)構(gòu)如圖1所示。

      圖1 系統(tǒng)的整體結(jié)構(gòu)

      1.2 USB/RS232通信接口設(shè)計

      由于主控芯片內(nèi)部集成了USB設(shè)備控制器,硬件電路設(shè)計比較簡單。要采用差分信號傳輸方式,只需將差分信號線與主控芯片的對應(yīng)引腳連接即可。RS232信號收發(fā)器將RS232標準的電平轉(zhuǎn)換成TTL/CMOS標準電平,具有2路驅(qū)動器2路接收器。

      1.3 ARINC429通信接口設(shè)計

      ARINC429總線采用的是雙極性歸零碼的三態(tài)碼調(diào)制方式,即調(diào)制方式為高(+9~+11V)、零(-0.5~+0.5V )和低(-9~ -11V)狀態(tài)組成的三電平狀態(tài)調(diào)制。傳輸采用32位或25位為一個字的差分模式,傳輸速率有100kB/s和12.5kB/s 2種[1]。DEI1016的輸出電平是TTL標準,需要經(jīng)過BD429電平轉(zhuǎn)換器轉(zhuǎn)換成ARINC429標準電平格式,再發(fā)送出去。而每個接收通道都不需要電平轉(zhuǎn)換,可直接連接到ARINC429數(shù)據(jù)總線。通過STM32F103和模擬開關(guān)DG412來控制BD429的CA和CB引腳,以切換傳輸速率。

      DEI1016的硬件接口電路如圖2所示。

      圖2 DEI1016的硬件接口電路

      1.3.1 DEI1016典型的發(fā)送數(shù)據(jù)時序

      DEI1016發(fā)送數(shù)據(jù)的時序如圖3所示。

      圖3 DEI1016發(fā)送數(shù)據(jù)的時序

      在發(fā)送數(shù)據(jù)時,如果TXR為高電平,說明發(fā)送存儲器空閑可以接收數(shù)據(jù),把ENTX置低禁止發(fā)送,從16位數(shù)據(jù)總線上下載6個ARINC字到緩沖區(qū),最多可達到8×32bit字。當/LD1為低,/LD2為高,下載的是 Word1;當/LD1為高,/LD2為低,下載的是 Word2。當ENTX置高,就可以通過DOA,DOB發(fā)送出去[2]。

      1.3.2 DEI1016典型的接收數(shù)據(jù)時序

      DEI1016接收數(shù)據(jù)的時序如圖4所示。在接收數(shù)據(jù)時,如果接收到有效數(shù)據(jù),則系統(tǒng)自動把/DR1或者/DR2位置0。當SEL為低,/OE1為低且/OE2為高時,接收通道1的數(shù)據(jù)傳到16位數(shù)據(jù)總線上;當/OE1為高,/OE2為低時,接收通道2的數(shù)據(jù)傳到16位數(shù)據(jù)線上[2]。

      圖4 DEI1016接收數(shù)據(jù)的時序

      2 軟件設(shè)計

      軟件部分主要包括應(yīng)用程序、USB的驅(qū)動程序和STM32F103的固件程序。由于操作系統(tǒng)的應(yīng)用程序主要用于人機交互,人機界面越友好越方便用戶操作,但不是設(shè)計的重點。設(shè)計的重點是USB的驅(qū)動程序和STM32F103的固件程序。

      2.1 USB的驅(qū)動程序

      USB驅(qū)動程序的編寫采用Driver Studio,它對必用的DDK進行了包裝,只要使用簡單的向?qū)Ь湍苌梢粋€驅(qū)動框架。而接口操作部分的子函數(shù)還是要用VC++編寫。應(yīng)用程序主要通過Create-File,C1oseHandle,ReadFile,WriteFile,DeviceIo-Control函數(shù)調(diào)用驅(qū)動程序。通過ReadFile和WriteFile訪問驅(qū)動程序的Read和Write函數(shù),通過DeviceIoControl函數(shù)訪問驅(qū)動程序的Control Code函數(shù)[3]。通過傳遞KIrp類(提供IRP各個域的存取方式)成員函數(shù)做參數(shù),可以獲取緩沖區(qū)地址、讀和寫數(shù)據(jù)的長度等參數(shù)。驅(qū)動程序處理I/O管理發(fā)來的I/O請求包(IRP),最后再將處理完成后的IRP返回給I/O管理。接著創(chuàng)建一個URB(USB請求塊)由USB驅(qū)動程序處理。

      2.2 STM32F103的固件程序

      STM32F103的固件程序主要包括初始化程序、主程序和中斷服務(wù)程序。初始化程序主要對USB,RS232和 ARINC429接口進行初始化[4];主程序主要是進入主循環(huán)等待各種中斷;中斷服務(wù)程序包括枚舉過程、數(shù)據(jù)發(fā)送部分和數(shù)據(jù)接收部分。

      USB的中斷服務(wù)程序如圖5所示。主機首先發(fā)送一個令牌包啟動USB傳輸,當STM32F103收到令牌包后就會觸發(fā)中斷。觸發(fā)中斷的類型有復(fù)位、掛起、枚舉過程、端點1接收數(shù)據(jù)和端點2發(fā)送數(shù)據(jù)。再讀取中斷寄存器,判斷產(chǎn)生中斷的類型,并進行相應(yīng)的中斷處理。其中枚舉過程的成敗決定USB能否正常傳輸數(shù)據(jù),只有枚舉過程成功,PC機才能發(fā)現(xiàn)新設(shè)備[5]。

      圖5 USB中斷流程

      ARINC429總線接收數(shù)據(jù)同樣采用中斷方式,如圖6所示。當DEI1016接收到ARINC429總線數(shù)據(jù)時,硬件自動置/DR1或/DR2為低電平,/DR1或/DR2與主控制芯片I/O口連接,再把這2個I/O口配置成外部中斷。當外部中斷到來,主控芯片只需要查詢與/DR1或/DR2相接的I/O口的狀態(tài),以便確定接收1或接收2通道傳輸?shù)臄?shù)據(jù),再作相應(yīng)的數(shù)據(jù)處理[6]。

      圖6 ARINC429總線引發(fā)的中斷流程

      3 結(jié)束語

      經(jīng)過Protues7.8軟件仿真和大量實驗證明,ARINC429信號可以正確地接收和發(fā)送信號。利用STM32F103控制DEI1016的譯碼、速率轉(zhuǎn)換和通道選擇,提高了系統(tǒng)穩(wěn)定性、可靠性。使用本模塊,使ARINC429信號測試更為方便,高、低速率之間切換更簡單,具有工業(yè)實用價值。

      [1]張 磊,李靜昭.基于MSP430的ARINC429航空總線測試接口設(shè)計[J].電子測試,2011,(10):5-8.

      [2]郭警濤,韓 敏.基于CPLD與DEI1016的ARINC429總線板設(shè)計[J].空軍雷達學(xué)院學(xué)報,2011,25(4):300-302.

      [3]馬存寶,張 韋,周宇晗.基于USB協(xié)議的ARINC429總線接口板的設(shè)計[J].計算機測量與控制,2008,16(6):859-864.

      [4]彭 剛,秦志強.基于ARM Cortex-M3的STM32系列嵌入式微控制器應(yīng)用實踐[M].北京:電子工業(yè)出版社,2011.

      [5]劉 榮.圈圈教你玩USB[M].北京:北京航空航天大學(xué)出版社,2009

      [6]李 榕,劉衛(wèi)國,劉曉劍.航空用ARINC429總線收發(fā)系統(tǒng)設(shè)計與實現(xiàn)[J].計算機測量與控制,2005,13(9):970-972,984.

      猜你喜歡
      接收數(shù)據(jù)發(fā)送數(shù)據(jù)驅(qū)動程序
      移動自組網(wǎng)中MAC層協(xié)議研究
      沖激噪聲背景下基于幅度預(yù)處理的測向新方法*
      低復(fù)雜度多輸入多輸出雷達目標角度估計方法
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點性能分析
      帶標記方式的CRDSA++協(xié)議性能分析*
      使用IPSec安全傳輸數(shù)據(jù)
      單片機模擬串口數(shù)據(jù)接收程序的實現(xiàn)及優(yōu)化
      基于PCMCIA的ARINC429通信卡設(shè)計
      微處理機(2010年3期)2010-06-13 11:32:54
      驅(qū)動程序更新與推薦
      驅(qū)動程序更新與推薦
      兴海县| 皋兰县| 蒙山县| 平定县| 繁峙县| 罗山县| 九台市| 易门县| 法库县| 华阴市| 策勒县| 沅江市| 海口市| 福州市| 江源县| 海阳市| 海南省| 嘉定区| 青田县| 临武县| 罗田县| 长武县| 南开区| 崇仁县| 启东市| 邵阳县| 丹凤县| 涟源市| 宁远县| 宜宾县| 江孜县| 商丘市| 凯里市| 吉林省| 巴马| 古丈县| 玛曲县| 禄劝| 石屏县| 平乐县| 岳西县|