當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀] 隨著我國航空航天技術(shù)的迅速發(fā)展,對地面遙控遙測接收機(jī)的實(shí)時(shí)性和高速數(shù)據(jù)傳輸性能的要求越來越高。越來越多的遙測遙控地面信道處理器都采用了實(shí)時(shí)能力更強(qiáng)的高速DSP/FPGA架構(gòu)設(shè)計(jì)方案。基于DSP/FPGA架構(gòu)的設(shè)計(jì)方案

 隨著我國航空航天技術(shù)的迅速發(fā)展,對地面遙控遙測接收機(jī)的實(shí)時(shí)性和高速數(shù)據(jù)傳輸性能的要求越來越高。越來越多的遙測遙控地面信道處理器都采用了實(shí)時(shí)能力更強(qiáng)的高速DSP/FPGA架構(gòu)設(shè)計(jì)方案?;贒SP/FPGA架構(gòu)的設(shè)計(jì)方案表現(xiàn)出強(qiáng)大的處理能力和高度的靈活性。但是,在研發(fā)中發(fā)現(xiàn)對FPGA以及DSP/FPGA之間的接口調(diào)試很費(fèi)時(shí)間和精力。究其原因是FPGA在線調(diào)試功能的支持很局限,所以本文設(shè)計(jì)一種通用的適于DSP/FPGA架構(gòu)的遙測接收機(jī)的調(diào)試和測控通信接口,從而方便在研發(fā)中進(jìn)行調(diào)試和可靠的傳輸測控中所需的實(shí)時(shí)參數(shù)?,F(xiàn)有文獻(xiàn)的通常做法是使用網(wǎng)絡(luò)接口來完成數(shù)據(jù)和控制指令的傳輸,但是在建立連接之后,數(shù)據(jù)傳輸中,一旦出現(xiàn)掉電或重啟就會丟失數(shù)據(jù),甚至?xí)霈F(xiàn)程序跑飛現(xiàn)象。通用串行總線(USB)因具有傳輸速度快、支持熱插拔、易于擴(kuò)展以及即插即用等優(yōu)點(diǎn),已經(jīng)成為計(jì)算機(jī)與外部設(shè)備進(jìn)行數(shù)據(jù)交換的常用接口。USB控制器是一種集成了USB總線協(xié)議的微控制器,利用USB控制器,用戶可以在不深入了解USB協(xié)議的情況下設(shè)計(jì)完整的USB接口,這也促進(jìn)了USB接口的廣泛應(yīng)用。

為了滿足更高的測控及數(shù)據(jù)傳輸速率的要求,提出并設(shè)計(jì)一種基于CY7C68013A的通用測控通信接口。該系統(tǒng)穩(wěn)定可靠、普適性好,并且可傳輸高質(zhì)量的圖像數(shù)據(jù),具有很好的應(yīng)用前景。

1 系統(tǒng)總體設(shè)計(jì)

該系統(tǒng)總體結(jié)構(gòu)圖如圖1所示,系統(tǒng)大致可分為3個(gè)部分。其中FPGA主要完成通信接收機(jī)的信號捕獲跟蹤、載波恢復(fù)、定時(shí)同步、圖像數(shù)據(jù)下傳、測控指令上傳以及USB芯片端點(diǎn)FIFO的讀寫控制。PC端的控制終端主要完成圖像數(shù)據(jù)的接收和處理、測控指令的生成、GUI交互界面的更新、重要參數(shù)的記錄和備份。Cypress FX2LP芯片主要完成數(shù)據(jù)的雙向傳遞以及與PC間的“問答”邏輯的實(shí)現(xiàn)。Cypress FX2LP芯片一方面要配置端點(diǎn)相關(guān)寄存器和讀寫緩存中的數(shù)據(jù),另一方面通過端點(diǎn)0“回答”PC終端程序關(guān)于內(nèi)部緩存中數(shù)據(jù)狀態(tài)情況的查詢,而且在數(shù)據(jù)不滿足傳輸指定格式的時(shí)候,還要將數(shù)據(jù)包修改成符合傳輸設(shè)定的格式的數(shù)據(jù)包。

FPGA采用Xilinx公司的Spartan-6系列芯片,考慮到遙測指令和圖像數(shù)據(jù)的優(yōu)先級別,采用中斷模式控制器對USB的端點(diǎn)FIFO進(jìn)行讀寫控制。當(dāng)沒有遙測指令需要上傳的時(shí)候,F(xiàn)PGA中的FIFO讀寫控制器不斷的將圖像數(shù)據(jù)寫入到USB的端點(diǎn)FIFO中;當(dāng)FIFO讀寫控制器檢測到USB端有遙測指令需要上傳的時(shí)候,即暫緩圖像數(shù)據(jù)的寫入,將圖像數(shù)據(jù)緩存在內(nèi)部RAM中,釋放讀寫總線,然后開啟讀取FIFO的控制進(jìn)程將遙測指令讀入到FPGA的暫存FIFO中。

2 系統(tǒng)硬件設(shè)計(jì)

2.1 CY7C68013A芯片簡介

CY7C68013A為Cypress公司的一款高性能的USB2.0微控制器,其內(nèi)部集成了USB2.0收發(fā)器、增強(qiáng)型的8051核、智能串行接口引擎(SIE)、4個(gè)片上FIFO和16KBRAM、通用可編程接口(GPIF)。該芯片支持全速(12 Mbps)和高速(480Mbps)兩種速率的數(shù)據(jù)傳輸。其內(nèi)嵌的增強(qiáng)的8051處理器支持兩個(gè)USART、3個(gè)定時(shí)器/計(jì)數(shù)器、擴(kuò)展的中斷系統(tǒng)以及I2C協(xié)議總線外設(shè)。CY7C68013A支持3種接口模式和外部器件進(jìn)行通信,分別是:Ports模式,GPIF Master模式和Slave FIFO模式。

2.2 FPGA接口模塊設(shè)計(jì)

在本系統(tǒng)中的CY7C68013A采用異步SlaveFIFO的工作模式。圖2給出了CY7C68013A和Spartan-6的硬件連接圖。其中,USB_FLAGA(B/C)為CY7C68013A輸出的狀態(tài)標(biāo)志信號,在USB固件中可以靈活的將它們配置為端點(diǎn)FIFO的狀態(tài)滿、空或者任意可編程的標(biāo)志位;USB_SLOE、USB_ SLRD、USB_WR組合完成對CY7C68013A端點(diǎn)FIFO的讀寫時(shí)序控制;USB_FD為雙向的數(shù)據(jù)總線;USB_PKEND為數(shù)據(jù)打包控制信號。

FPGA接口模塊設(shè)計(jì)主要包含上行緩存、下傳緩存、雙向FIFO邏輯控制邏輯設(shè)計(jì)。其中雙向的FIFO邏輯控制完成對CY7C68013A的端點(diǎn)FIFO進(jìn)行數(shù)據(jù)的讀寫操作,并且完成從下傳緩存中讀取數(shù)據(jù)以及把上傳的數(shù)據(jù)寫入到上傳緩存的時(shí)序控制。本設(shè)計(jì)中采用兩個(gè)并行的狀態(tài)機(jī)來控制,兩個(gè)狀態(tài)機(jī)分別實(shí)現(xiàn)從USB端點(diǎn)FIFO讀取數(shù)據(jù)并寫入到上行緩存,從下行緩存中讀取數(shù)據(jù)并將數(shù)據(jù)寫入到相應(yīng)的端點(diǎn)FIFO中??紤]到下行圖像數(shù)據(jù)和上行遙測控制指令的優(yōu)先級,將兩個(gè)狀態(tài)機(jī)之間的信息交互設(shè)計(jì)成在中斷模式下運(yùn)行,以此來解決對數(shù)據(jù)總線的共享問題。

讀取USB端點(diǎn)FIFO控制狀態(tài)機(jī)如圖3所示。圖中小圓圈標(biāo)注的狀態(tài)轉(zhuǎn)換條件的意義為:a表示USB端點(diǎn)FIFO中沒有需要讀取的數(shù)據(jù)或者上行緩存阻塞;b表示沒有檢測到讀取請求ACK的有效信號;c表示檢測到USB端點(diǎn)FIFO中無待讀取數(shù)據(jù);d表示在狀態(tài)S4的情況下,檢測到USB端點(diǎn)FIFO中無待讀數(shù)據(jù)的次數(shù)超過預(yù)先設(shè)定的閾值VT。該控制狀態(tài)機(jī)共包含了8個(gè)狀態(tài)。其中,Idle為初始狀態(tài);S2狀態(tài)完成是否接收到讀取請求ACK信號,如果收到則轉(zhuǎn)入S3進(jìn)入讀取數(shù)據(jù)的流程,反之,則停留在該狀態(tài)等待回應(yīng);S3狀態(tài)為讀取數(shù)據(jù)準(zhǔn)備地址信號,并輸出地址信號;S4狀態(tài)再次確定是否有數(shù)據(jù)需要讀取;S5完成從USB端點(diǎn)FIFO中讀取數(shù)據(jù)到內(nèi)部寄存器中;S6完成將內(nèi)部寄存器的數(shù)據(jù)寫入到上行緩存中;S7完成判斷是否需要(能)繼續(xù)讀取數(shù)據(jù),若需要(能)繼續(xù)讀取,轉(zhuǎn)入狀態(tài)S5,反之,回到Idie狀態(tài)等待下次讀取的啟動(dòng)。

寫端點(diǎn)FIFO控制狀態(tài)機(jī)如圖4所示。圖中小圓圈標(biāo)注的狀態(tài)轉(zhuǎn)換條件的意義為:a表示讀取USB端點(diǎn)FIFO的標(biāo)志有效,說明數(shù)據(jù)總線被占用;b表示檢測到USB端點(diǎn)接收數(shù)據(jù)FIFO中的數(shù)據(jù)已填滿。該狀態(tài)機(jī)中共包含了8個(gè)狀態(tài),其中Idle為初始狀態(tài),判斷是否有讀取數(shù)據(jù)請求信號,若有轉(zhuǎn)入對讀取請求中斷處理狀態(tài)S1,反之,轉(zhuǎn)入狀態(tài)S3開始數(shù)據(jù)的寫入進(jìn)程;S2狀態(tài)等待讀取數(shù)據(jù)結(jié)束,釋放數(shù)據(jù)總線,轉(zhuǎn)入狀態(tài)S3;S4從下行緩存中讀取數(shù)據(jù),存入到內(nèi)部寄存器中;S6將內(nèi)部寄存器中的數(shù)據(jù)寫入到USB端點(diǎn)FIFO中;S7判斷是否需要(并且數(shù)據(jù)總線空閑、端點(diǎn)FIFO中未滿)繼續(xù)讀取數(shù)據(jù),若需要(能)繼續(xù)讀取,轉(zhuǎn)入狀態(tài)S4,反之,將打包信號USB_PKTEND置為有效并且回到Idle狀態(tài)啟動(dòng)下一次寫狀態(tài)機(jī)的運(yùn)行。

航空航天測控設(shè)備因?yàn)槠涮厥獾膽?yīng)用環(huán)境,常常遭受強(qiáng)磁場、空間強(qiáng)粒子流或者單粒子翻轉(zhuǎn)效應(yīng)等特殊干擾的影響。所以在上面的狀態(tài)機(jī)的設(shè)計(jì)中,對重要的觸發(fā)信號和標(biāo)志位信號進(jìn)行了多次間隔性冗余保護(hù)確認(rèn)。如在讀取控制狀態(tài)機(jī)中,在S4狀態(tài)下再次對USB端點(diǎn)FIFO中是否有需要讀取的數(shù)據(jù)進(jìn)行判斷,是為了防止因?yàn)镻CB電氣特性不穩(wěn)定或者偶然的空間電磁干擾導(dǎo)致之前啟動(dòng)讀取數(shù)據(jù)的進(jìn)程為誤判,而在此再次確定該信號的有效性,這樣設(shè)計(jì)增強(qiáng)了系統(tǒng)的容錯(cuò)性和抗干擾能力。類似的容錯(cuò)思想在寫端點(diǎn)FIFO控制狀態(tài)機(jī)的S1狀態(tài)也可以體現(xiàn)出來。

2.3 USB驅(qū)動(dòng)程序

Cypress FX2開發(fā)包中提供了通用的驅(qū)動(dòng)程序,通用驅(qū)動(dòng)程序完成與外設(shè)和用戶應(yīng)用程序的通信和控制,微處理器根據(jù)新的設(shè)置安裝通用驅(qū)動(dòng)程序,重新枚舉外設(shè)為一個(gè)新的USB設(shè)備。

3 系統(tǒng)軟件設(shè)計(jì)

3.1 固件程序設(shè)計(jì)

CY7C68013A芯片的固件程序運(yùn)行在芯片內(nèi)部,主要完成對芯片工作模式的配置以及處理主機(jī)的USB設(shè)備請求。Cypress提供了固件程序的開發(fā)框架,開發(fā)人員只需要按應(yīng)用背景和需求對所給框架內(nèi)的程序做細(xì)化和修改即可。USB傳輸可分成數(shù)據(jù)傳輸和控制傳輸,其中數(shù)據(jù)傳輸由大端點(diǎn)(EP2/4/6/8)完成,控制傳輸由小端點(diǎn)(EPO)完成。在固件程序中,TD_Poll()為數(shù)據(jù)處理程序,處在主函數(shù)的While()循環(huán)中。該函數(shù)包含實(shí)現(xiàn)特殊任務(wù)的代碼,設(shè)備運(yùn)行時(shí)將被重復(fù)調(diào)用。

在本系統(tǒng)中,我們將EP2配置為Bulk傳輸模式的OUT端點(diǎn),其端點(diǎn)緩存為512Byte,兩級緩存;EP6配置為Bulk傳輸模式的IN端點(diǎn),其端點(diǎn)緩存為512Byte,四級緩存。并且把EP6FIFO配置為AUTIN模式,其AUTOINLEN配置為512Byte。固件程序還必須完成對PC控制終端發(fā)送來的USB控制傳輸請求的響應(yīng)。端點(diǎn)0是CY7C68013A中唯一的控制端點(diǎn),它是一個(gè)可完成雙向控制傳輸?shù)亩它c(diǎn),只有它才能處理SETUP指令。完成主機(jī)USB控制傳輸請求的固件程序段,只需要在所給固件框架下的函數(shù)DR_VendorCmnd()中返回EP2468STAT寄存器的值即可實(shí)現(xiàn)。

3.2 控制上位機(jī)設(shè)計(jì)

該測控接口的上位機(jī)軟件設(shè)計(jì)采用MFC編程,MFC封裝了大部分的windows API函數(shù),采用消息循環(huán)機(jī)制處理事件。在MFC框架生成的工程中,添加上Cypress提供的CyAPI庫文件,即可在工程中調(diào)用庫中已經(jīng)封裝好的類的成員變量以及成員函數(shù)。在上位機(jī)的設(shè)計(jì)中采用了多線程編程,系統(tǒng)軟件設(shè)計(jì)的流程圖如圖5所示。

在上位機(jī)軟件設(shè)計(jì)中,主線程主要完成在消息循環(huán)機(jī)制下檢測面板上的點(diǎn)擊事件,以及對子線程做出的相應(yīng)的控制。在主線程的初始化中,首先生成CCyUSBDevice對象,然后讀取硬件配置信息以及設(shè)備的必要識別信息并顯示在前操作面板上,最后建立RXfer子線程。在主線程中,當(dāng)檢測到Send按鈕被點(diǎn)擊時(shí)。即開始發(fā)送上行指令。此處采用同步數(shù)據(jù)傳輸,保證了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。當(dāng)主線程中檢測到Start按鈕被點(diǎn)擊時(shí),根據(jù)RXfer線程的不同狀態(tài),執(zhí)行相應(yīng)的操作。在RXfer子線程中,主要完成下行數(shù)據(jù)的接收、下行數(shù)據(jù)寫入數(shù)據(jù)文檔以及管理隊(duì)列中的請求等工作。在下行數(shù)據(jù)接收線程中,我們采用了異步數(shù)據(jù)傳輸方式。在異步傳輸方式下,上位機(jī)軟件發(fā)出數(shù)據(jù)請求之后,不需要等待回應(yīng),即可立即發(fā)出下一次的數(shù)據(jù)請求,這樣可極大的提高上位機(jī)軟件的數(shù)據(jù)吞吐速率,保證數(shù)據(jù)傳輸?shù)母咝?。多次的異步?shù)據(jù)請求是利用數(shù)據(jù)請求隊(duì)列來完成的,在線程函數(shù)的開始,開辟適當(dāng)長度的數(shù)據(jù)請求隊(duì)列,并且給他們分配相應(yīng)的內(nèi)存空間,然后進(jìn)入到線程的循環(huán)體中。在循環(huán)體中,完成當(dāng)前的隊(duì)列元素中的請求數(shù)據(jù)傳輸并把相應(yīng)數(shù)據(jù)寫入數(shù)據(jù)文檔之后,立即將新的數(shù)據(jù)請求塞入到該隊(duì)列元素中,并且把指針更新到下一個(gè)隊(duì)列元素。當(dāng)數(shù)據(jù)請求失敗、接受數(shù)據(jù)不成功或者循環(huán)接收數(shù)據(jù)標(biāo)志位False時(shí),首先完成隊(duì)列中其他已經(jīng)成功請求數(shù)據(jù)傳輸?shù)臄?shù)據(jù),然后關(guān)閉文件句柄,釋放相應(yīng)的資源,最后終止線程。

4 系統(tǒng)測試結(jié)果

該通用測控通信接口用于實(shí)際測控?cái)?shù)據(jù)的下傳,實(shí)際測試面板如圖6所示。在進(jìn)行測試時(shí),首先運(yùn)行該測試應(yīng)用軟件,完成初始化之后,在設(shè)備信息顯示框中顯示USB設(shè)備信息,其中包括設(shè)別的PID和VID、EndPoint配置情況、設(shè)備描述信息等信息。然后通過點(diǎn)擊“start”按鈕,建立起RXfer線程,開始接收下行傳輸數(shù)據(jù)。若需發(fā)送指令,在Send按鈕左邊的輸入框中輸入適當(dāng)?shù)倪b測遙控指令,然后點(diǎn)擊Send即可發(fā)送。測試系統(tǒng)中所接收到的數(shù)據(jù)如圖7所示。在此數(shù)據(jù)中采用了符合CCSDS航天測控標(biāo)準(zhǔn)數(shù)據(jù)格式,幀頭為EB90,接下來的三個(gè)Byte為幀計(jì)數(shù)(圖中顯示的是000007),幀結(jié)尾標(biāo)志位13AB,幀結(jié)尾標(biāo)志的前兩個(gè)Byte為RS譯碼報(bào)告輸出(譯碼前數(shù)據(jù)是否出錯(cuò),錯(cuò)誤是否可糾)。

對該通用測控通信接口的速率和可靠性進(jìn)行了測試,測試結(jié)果如表1所示。對比表中數(shù)據(jù)看出,該接口的最高的可靠的傳輸速率可達(dá)為8.1MB/s,對2.3MB/s和8.1MB/s的速率進(jìn)行了可靠性測試,測試的結(jié)果都顯示,在該速率下所設(shè)計(jì)的測控通信接口可以完成數(shù)據(jù)的可靠傳輸。

5 結(jié)論

該測控通信接口系統(tǒng)采用USB2.0協(xié)議芯片CY7C68013A和FPGA搭建了硬件平臺,在FPGA狀態(tài)機(jī)設(shè)計(jì)中采用中斷模式的雙狀態(tài)機(jī)和關(guān)鍵標(biāo)志冗余設(shè)計(jì)的思想,軟件設(shè)計(jì)采用多線程的設(shè)計(jì)思想,提高了通信接口的可靠性和傳輸速率。該測控通信接口已用于實(shí)際測控通信系統(tǒng)中,實(shí)際應(yīng)用表明該測控通信接口具有速率高、穩(wěn)定可靠、人機(jī)界面友好等特點(diǎn),達(dá)到系統(tǒng)設(shè)計(jì)要求,具有推廣應(yīng)用的價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉