《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于USB的多通道俄制串行總線接口卡設(shè)計(jì)

基于USB的多通道俄制串行總線接口卡設(shè)計(jì)

2008-03-26
作者:鄧青海,景小寧,劉 安

  摘 要: 基于USB的多通道" title="多通道">多通道俄制軍用串行總線接口卡的設(shè)計(jì)及實(shí)現(xiàn)方案,重點(diǎn)論述了在基于FPGA的俄制軍用串行總線IP核上通過雙口RAM與USB通信,以及CY7C68013芯片在GPIF模式下進(jìn)行固件和驅(qū)動程序設(shè)計(jì)的方法。
  關(guān)鍵詞: ΓОСТ18977 PTM1495 現(xiàn)場可編程門陣列 通用串行總線 通用可編程接口


  俄羅斯標(biāo)準(zhǔn)ΓОСТ18977規(guī)定了飛機(jī)的成套機(jī)載設(shè)備通信的電器特性,其中一部分規(guī)定了與美國標(biāo)準(zhǔn)ARINC429相對應(yīng)的串行碼信號的類型及其電氣標(biāo)準(zhǔn)。而與之配套的PTM1495技術(shù)資料中則規(guī)定了按照ΓОСТ18977標(biāo)準(zhǔn)采用雙極性碼進(jìn)行信息交換的具體方法。該標(biāo)準(zhǔn)在蘇27、蘇30的火控計(jì)算機(jī)、大氣計(jì)算機(jī)等機(jī)載設(shè)備中得到廣泛應(yīng)用。目前,基于該標(biāo)準(zhǔn)的接口卡大多數(shù)為PCI總線接口,且只具有兩收一發(fā)的功能,測試維護(hù)很不方便。為了使接口卡使用方便、即插即用,本文提出了基于USB接口的多通道總線接口卡的實(shí)現(xiàn)方案。
1 ΓОСТ18977標(biāo)準(zhǔn)及其對應(yīng)的數(shù)據(jù)格式標(biāo)準(zhǔn)
  ΓОСТ18977標(biāo)準(zhǔn)采用雙極歸零制模式傳輸32位位信息,其信號電平的定義見表1。在連續(xù)傳輸時(shí),它們之間的間隔至少有4個(gè)位時(shí)間(零電壓)。ΓОСТ18977中規(guī)定的串行碼信號可以在12kbps、48kbps、100kbps、250kbps四種速率下工作,而目前的飛機(jī)系統(tǒng)和裝置一般均在48kbps、公差為±25%的傳輸速率下工作。


  ΓОСТ18977和PTM1495規(guī)定通信中可以采用四種數(shù)據(jù)格式:二進(jìn)制碼,二-十進(jìn)制碼(BCD)、指令和標(biāo)志碼,以及由字母、符號、數(shù)字組成的字符碼。這四種數(shù)據(jù)的發(fā)送和接收都要按照PTM1495規(guī)定的32位串行數(shù)據(jù)的方式進(jìn)行。
2 CY7C68013簡介
  CY7C68013是Cypress公司推出的USB2.0控制器。它包括帶8KB片上RAM的高速8051單片機(jī)、4KB FIFO存儲器以及通用可編程接口(GPIF)、串行接口引擎(SIE)、USB2.0收發(fā)器、6條可編程控制輸出線、9條地址輸出線、6條通用的準(zhǔn)備輸入線(數(shù)據(jù)線寬可為8位或16位),具有56引腳、100引腳、128引腳[3]三種封裝規(guī)格。
  CY7C68013外設(shè)交換數(shù)據(jù)通常采用Slave FIFOs(從設(shè)備)和GPIF兩種方式。GPIF為一個(gè)靈活的8位或16位的并行接口,由一個(gè)用戶可編程的狀態(tài)機(jī)驅(qū)動。
  USB傳輸類型有控制傳輸、中斷傳輸、同步傳輸及塊傳輸。通常,塊傳輸用于傳輸大量數(shù)據(jù)的設(shè)備,而且對數(shù)據(jù)進(jìn)行校驗(yàn)和重傳。USB2.0版本支持高達(dá)480Mbps的傳輸速率,塊傳輸完全可滿足多通道總線接口卡的要求。
3 系統(tǒng)設(shè)計(jì)
  系統(tǒng)硬件設(shè)計(jì)主體結(jié)構(gòu)如圖1所示,主要由USB2.0接口器件CY7C68013-128PIN、雙端口" title="雙端口">雙端口RAM IDT7025、FPGA(Altera Cyclone系列EP1C12)、電平轉(zhuǎn)換器件HI8585和HI-8482組成。
3.1 雙端口RAM地址空間劃分
  數(shù)據(jù)緩存的關(guān)鍵是雙端口RAM。本系統(tǒng)采用IDT7025,規(guī)格為8K×16位。考慮到數(shù)據(jù)傳輸無間隙的要求,將雙端口RAM分為讀、寫兩部分。其中前4K×16位用來存儲發(fā)送的數(shù)據(jù),后4K×16位用來存儲接收的數(shù)據(jù)。由于對雙端口RAM可以同時(shí)讀寫,所以又將讀、寫RAM地址區(qū)各劃分為4部分,分別對應(yīng)4個(gè)發(fā)送、接收通道。以發(fā)送通道1為例,其地址范圍為0x0000~0x03FF,在發(fā)送通道1內(nèi),又分為4個(gè)小部分,地址空間為0x0000~0x00FF,0x0100~0x01FF,0x0200~0x02FF,0x0300~0x03FF。當(dāng)0x0000~0x00FF寫滿時(shí),CY7C68013-128PIN將產(chǎn)生TXFULL信號,由FPGA讀取其雙端口RAM內(nèi)的數(shù)據(jù),同時(shí)發(fā)送數(shù)據(jù)可以存入下個(gè)地址空間0x0100~0x01FF,從而達(dá)到數(shù)據(jù)的無間隙傳輸。其他通道的RAM工作過程類似。圖1中的ADDR[7..0]L和PA[7..4]是CY7C68013-128PIN用來訪問雙端口的地址,ADDR[7..0]L為低8位,PA[7..4]為高4位;ADDR[11..0]R是FPGA用來訪問雙端口的地址。


3.2 FPGA邏輯功能
  FPGA主要完成多通道協(xié)議IP核邏輯和自檢測" title="自檢測">自檢測邏輯[4]。多通道協(xié)議IP核邏輯的主要功能是實(shí)現(xiàn)ΓОСТ18977標(biāo)準(zhǔn),它既能接收經(jīng)過轉(zhuǎn)換的、符合ΓОСТ18977標(biāo)準(zhǔn)的數(shù)字信號并將其送入CPU或其他設(shè)備,又能將CPU或其他設(shè)備發(fā)出的數(shù)字信號按照ΓОСТ18977標(biāo)準(zhǔn)的數(shù)據(jù)格式輸出。該IP核提供8通道同時(shí)收發(fā),且每路通道數(shù)據(jù)傳輸相互獨(dú)立;每個(gè)通道可以單獨(dú)定義總線頻率及通道標(biāo)志,可以選擇是否允許校驗(yàn),其校驗(yàn)方式可單獨(dú)定義為奇校驗(yàn)或偶校驗(yàn)等。另外,IP核提供8、16、32位的CPU總線接口。本系統(tǒng)IP核采用4通道同時(shí)收發(fā),16位CPU數(shù)據(jù)總線接口。自檢測邏輯主要是對板卡進(jìn)行發(fā)送和接收通道功能自檢測。
  由上述分析可知,F(xiàn)PGA的主要功能為:(1)實(shí)現(xiàn)多通道數(shù)據(jù)傳輸協(xié)議;(2)實(shí)現(xiàn)自檢測邏輯;(3)提供訪問IDT7025的控制信號、地址信號和數(shù)據(jù);(4)對可能到來的4通道中斷信號排隊(duì);(5)向USB提供數(shù)據(jù)滿信號(RAMRX1FULL等)、未滿信號(RXNOTFULL)和字計(jì)數(shù)器(COUNT[7..0]);(6)接收USB傳來的數(shù)據(jù)滿信號(TXFULL)、未滿信號(TXNOTFULL)、字計(jì)數(shù)器(PE[7..0])和RAM地址塊選擇信號(PA[7..4]);(7)提供與CY7C68013-128PIN內(nèi)嵌8051CPU的接口。
3.3 ΓОСТ18977標(biāo)準(zhǔn)的接口
3.3.1 接口芯片選擇

  由于ΓОСТ18977標(biāo)準(zhǔn)與相應(yīng)的ARINC429總線的電平定義基本一致,區(qū)別僅在于ΓОСТ18977標(biāo)準(zhǔn)對接收端的公差稍小,所以接口器件選用HOLT公司的ARINC429總線接口芯片,完全可以滿足系統(tǒng)的要求。發(fā)送通道選用HI-8585,可將一路TTL信號轉(zhuǎn)換成雙極歸零制電平信號;接收通道選用HI-8482,可將兩路雙極歸零制電平信號轉(zhuǎn)換成兩路TTL信號。
3.3.2 供電方案
  因?yàn)榻涌谛酒琀I-8585和HI-8482電源電壓工作在12V或15V,考慮到多通道收發(fā)對電源功率的要求,僅靠USB供電不能滿足系統(tǒng)的需要,因此本系統(tǒng)采用PS/2接口以輔助供電。
3.4 工作流程
  本系統(tǒng)設(shè)計(jì)四通道同時(shí)收發(fā),其過程相對復(fù)雜,考慮到各通道收發(fā)過程非常類似,所以僅以收發(fā)通道1為例介紹其流程[5]。
3.4.1 數(shù)據(jù)發(fā)送工作流程
  數(shù)據(jù)發(fā)送分為大批量數(shù)據(jù)發(fā)送和小批量數(shù)據(jù)發(fā)送兩種情況。(1)大批量數(shù)據(jù)發(fā)送:當(dāng)發(fā)送數(shù)據(jù)達(dá)到256×16位時(shí),CY7C68013-128PIN將產(chǎn)生數(shù)據(jù)滿信號(TXFULL),PA[7..4]提供RAM數(shù)據(jù)塊選擇信號,F(xiàn)PGA通過這兩個(gè)信號讀取相應(yīng)的RAM空間,得到256×16位數(shù)據(jù)。(2)小批量數(shù)據(jù)發(fā)送:CY7C68013-128PIN將產(chǎn)生數(shù)據(jù)未滿信號(TXNOTFULL),PA[7..4]提供RAM數(shù)據(jù)塊選擇信號,PE[7..0]提供數(shù)據(jù)字個(gè)數(shù)計(jì)數(shù)器,F(xiàn)PGA通過這三個(gè)信號讀取相應(yīng)的RAM空間得到相應(yīng)的數(shù)據(jù)。最后,F(xiàn)PGA通過多通道IP核完成數(shù)據(jù)發(fā)送。
3.4.2 數(shù)據(jù)接收" title="數(shù)據(jù)接收">數(shù)據(jù)接收工作流程
  數(shù)據(jù)接收分為大批量數(shù)據(jù)接收和小批量數(shù)據(jù)接收兩種情況。(1)大批量數(shù)據(jù)接收:當(dāng)接收數(shù)據(jù)達(dá)到256×16位時(shí),F(xiàn)PGA將產(chǎn)生數(shù)據(jù)滿信號(RAMRX1FULL),CY7C68013-128PIN通過此信號啟動GPIF波形,連續(xù)讀取RAM空間內(nèi)256×16位數(shù)據(jù)。(2)小批量數(shù)據(jù)發(fā)送:當(dāng)FPGA內(nèi)計(jì)數(shù)器連續(xù)檢測到N個(gè)時(shí)間間隙(N值取決于實(shí)時(shí)性要求,本系統(tǒng)為5)沒有數(shù)據(jù)接收時(shí),將產(chǎn)生數(shù)據(jù)未滿信號(RAMRXNOTFULL),同時(shí)CHANNEL[3..0]提供RAM數(shù)據(jù)塊選擇信號,COUNT[7..0]提供數(shù)據(jù)字個(gè)數(shù)計(jì)數(shù)器,CY7C68013-128PIN通過這三個(gè)信號讀取相應(yīng)的RAM空間得到接收的數(shù)據(jù)。接收的數(shù)據(jù)通過USB數(shù)據(jù)線傳送到PC機(jī)。
4 USB器件CY7C68013的設(shè)計(jì)
4.1 GPIF波形描述符" title="描述符">描述符的實(shí)現(xiàn)機(jī)制
  GPIF是CY7C68013內(nèi)FIFO的內(nèi)部控制器。此方式下,接口內(nèi)核可產(chǎn)生6個(gè)控制信號(CTL0~CTL5)、9個(gè)地址信號(ADDR0~ADDR8),可以接收6個(gè)外部輸入(RDY0~RDY5)和2個(gè)內(nèi)部輸入,還有時(shí)鐘信號IFCLK和可選的8位FD[7..0]或16位FD[15..0]數(shù)據(jù)總線[6]。CY7C68013有四個(gè)波形描述符控制各個(gè)狀態(tài),分別為單次讀、單次寫、FIFO讀、FIFO寫。這些波形描述符可以隨意配置給任何一個(gè)端點(diǎn)FIFO。每個(gè)波形描述符包含S0~S6 7個(gè)有效狀態(tài)和一個(gè)空閑狀態(tài)。在每個(gè)有效狀態(tài)對應(yīng)的時(shí)間內(nèi),經(jīng)過預(yù)先定義,GPIF可以做以下幾件事:(1)驅(qū)動(使高或使低)或懸浮控制信號;(2)采樣或驅(qū)動FIFO的數(shù)據(jù)總線;(3)增加GPIF地址總線值;(4)增加指向當(dāng)前FIFO指針的值;(5)啟動GPIFWF(波形描述符)中斷。除此之外,在每個(gè)狀態(tài),GPIF可以對下面信號中的任意兩個(gè)采樣:(1)RDY輸入端;(2)FIFO狀態(tài)標(biāo)志位;(3)內(nèi)部RDY標(biāo)志;(4)傳輸計(jì)數(shù)終止標(biāo)志位。然后把這兩個(gè)信號相與、相或、相異或,根據(jù)結(jié)果跳轉(zhuǎn)到其他任意一個(gè)狀態(tài)或延遲1~256個(gè)時(shí)鐘周期。當(dāng)然也可以根據(jù)一個(gè)信號跳轉(zhuǎn)。每次波形描述符執(zhí)行結(jié)束后必須跳轉(zhuǎn)到空閑狀態(tài)結(jié)束。在GPIF控制其總線進(jìn)行傳輸?shù)倪^程中,不需要CPU的干預(yù),可直接通過FIFO與USB總線進(jìn)行數(shù)據(jù)交換。在GPIF接口上同一時(shí)刻只能有一個(gè)波形描述符在執(zhí)行,要更換波形描述符必須等到上個(gè)波形描述符執(zhí)行完畢。
  利用Cypress公司提供的GPIF Designer可以方便地生成波形描述符源文件GPIF.c,其主要包括初始變量的設(shè)置和GPIF初始化函數(shù)GPIFInit。本系統(tǒng)采用16位數(shù)據(jù)總線FD[15..0]、8位地址總線ADDR[7..0]、3個(gè)控制線(CTL0選通IDT7025的R/WL,CTL1選通CEL,CTL2選通OEL)。RDY[3..0]接收4個(gè)通道的接收滿信號RAMRXFULL[4..1],另外PA[7..2]、PA0、PE[7..0]提供地址輔助信息。圖2為FIFO讀波形描述符。


4.2 8051CPU的功能
  8051CPU主要完成FPGA內(nèi)發(fā)送和接收通道的控制寄存器、狀態(tài)寄存器、標(biāo)志寄存器的設(shè)置,包括總線頻率、通道標(biāo)志、是否允許校驗(yàn)、校驗(yàn)方式為奇校驗(yàn)或偶校驗(yàn)、是否允許自檢測等。
4.3 固件的設(shè)計(jì)
  Cypress公司為CY7C68013提供了一個(gè)開發(fā)框架,可以在Keil C51環(huán)境中開發(fā)。結(jié)合本系統(tǒng),該框架由五部分組成:(1)fw.c包含了程序框架的MAIN函數(shù),主要處理C51內(nèi)核的運(yùn)行,解析Setup命令包。(2)dscr.a51是描述表文件,負(fù)責(zé)USB設(shè)備的描述工作。CY7C68013在上電后自動利用其VID和PID取代默認(rèn)的VID和PID。(3)gpif.c是GPIF波形描述符文件,由GPIF Designer生成。(4)Ezusb.lib是EZUSB函數(shù)庫的二進(jìn)制文件,USBJmpTB.obj是USB的中斷向量表。(5)FX2_to_BUS.c 負(fù)責(zé)系統(tǒng)周邊器件的互聯(lián),固件設(shè)計(jì)主要針對此部分。包括函數(shù)TD_Init、TD_Poll、DR_VendorCmnd和中斷函數(shù)的函數(shù)體等。
4.4 驅(qū)動程序的設(shè)計(jì)
  本驅(qū)動程序開發(fā)采用了Jungo公司的WinDriver開發(fā)平臺。WinDriver的優(yōu)點(diǎn)是用戶不需要了解操作系統(tǒng)內(nèi)部原理,不需要了解DDK開發(fā)工具。另外,Cypress公司為CY7C68013提供了專門的開發(fā)框架,因此大大縮短了開發(fā)周期。
  本接口卡四個(gè)收發(fā)通道完全符合俄羅斯標(biāo)準(zhǔn)ΓОСТ18977,四通道同時(shí)工作在最高頻率250kbps時(shí)都能滿足實(shí)時(shí)性要求。另外,由于基于USB接口,使得接口卡的體積較小,實(shí)現(xiàn)了即插即用,應(yīng)用靈活,節(jié)省了系統(tǒng)資源。目前該接口卡已成功應(yīng)用于某航空機(jī)載計(jì)算機(jī)項(xiàng)目中。
參考文獻(xiàn)
1 王 勇.航空機(jī)載計(jì)算機(jī)與航空電子總線[M].西安:空軍工程學(xué)院出版社,1998
2 劉歡迎,羅志強(qiáng).ARINC429協(xié)議和與之對應(yīng)的俄羅斯標(biāo)準(zhǔn)的比較[J].航空電子技術(shù),2002;33(1)
3 Cypress Semiconductor Corp.EZ-USB FX2 Manual Technical Reference V2.1
4 Actel Corporation.ARINC 429 Bus Interface.http://www.actel.com/ipdocs/CoreARINC429_DS.pdf,2005
5 高世杰,竺曉山.基于USB2.0的多路異步串行系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2005;(7)
6 周云峰,單甘霖,王 鑫.FX2的波形描述符設(shè)計(jì)及應(yīng)用.微計(jì)算機(jī)信息,2005;21(2)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。