亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        FPGA與PCM—9575嵌入式計算機(jī)異步通信的設(shè)計與實現(xiàn)

        2016-05-14 10:48:55林大橋
        科技創(chuàng)新與應(yīng)用 2016年9期

        摘 要:短波發(fā)射機(jī)自動調(diào)諧系統(tǒng)采用FPGA與嵌入式計算機(jī)來實現(xiàn)各自的功能,其中他們之間的異步通信的設(shè)計是很重要的環(huán)節(jié),其實用性、可靠性是需要考慮的主要方面,文章介紹利用ISE設(shè)計平臺采用層次化設(shè)計方式實現(xiàn)二者之間的通信,取得了良好的效果。

        關(guān)鍵詞:異步通信嵌入式主板;FPGA;RS232;HDLC;FIFO

        1 概述

        短波(3.9MHZ-26.1MHZ)發(fā)射機(jī)更換工作頻率時為了保證發(fā)射機(jī)能正常工作在所需的頻率值,必須使高頻回路各個調(diào)諧器件在步進(jìn)電機(jī)的帶動下轉(zhuǎn)動到相應(yīng)的頻率的位置上。TBH522型150KW短波發(fā)射機(jī)數(shù)字化自動調(diào)諧系統(tǒng)采用XC2S200設(shè)計實現(xiàn)對8路步進(jìn)電機(jī)位置的采集、轉(zhuǎn)動控制、及其他邏輯控制功能;使用臺灣生產(chǎn)的PCM-9575嵌入式主板實現(xiàn)與上位機(jī)通信、調(diào)諧頻率數(shù)據(jù)庫的存儲、發(fā)射機(jī)模擬量采集、人機(jī)對話界面等功能。由于該嵌入式主板有現(xiàn)成的RS232接口,我們對FPGA設(shè)計異步通信宏模塊,實現(xiàn)其與嵌入式主板通信,通信方式采用國際標(biāo)準(zhǔn)電子工業(yè)聯(lián)合會(EIA)定制的RS232標(biāo)準(zhǔn),通信協(xié)議采用的是高級數(shù)據(jù)鏈路控制協(xié)議(HDLC)協(xié)議,負(fù)責(zé)傳送步進(jìn)電機(jī)的預(yù)置位置、實際位置、鍵盤數(shù)據(jù)、頻率以及一些控制命令等數(shù)據(jù)。

        2 FPGA異步通信總的設(shè)計思想

        RRI和TRO為異步通信輸入輸出引腳,嵌入式計算機(jī)COM口設(shè)置為9600波特率、1位奇偶校驗位、1位停止位。CLK為系統(tǒng)時鐘16MHz。

        LOAD信號只在接收到實際位置的時候維持大約4us的高電平,在其他狀態(tài)為低電平,在高電平時將步進(jìn)電機(jī)實際位置計數(shù)器置數(shù),低電平時步進(jìn)電機(jī)實際位置計數(shù)器計數(shù)。

        發(fā)送程序啟動時,不斷掃描8路地址的總線,從第1路到第8路連續(xù)發(fā)送8幀數(shù)據(jù),然后再重新掃描。

        接收程序接收到數(shù)據(jù)后將數(shù)據(jù)鎖存到總線上,內(nèi)部設(shè)有差錯處理功能,當(dāng)幀結(jié)構(gòu)不正確或一幀數(shù)據(jù)不完整將不會把數(shù)據(jù)送到總線上。

        2.1 層次化設(shè)計

        異步通信模塊涉及到的RS232通信標(biāo)準(zhǔn)和HDLC協(xié)議控制都比較復(fù)雜,從通信的層次來說,RS232數(shù)據(jù)底層的通信協(xié)議,HDLC協(xié)議控制數(shù)據(jù)高層協(xié)議控制,當(dāng)完成了底層的RS232通信的設(shè)計后,高層協(xié)議HDLC只需要按照其協(xié)議規(guī)定的數(shù)據(jù)格式調(diào)用底層的通信協(xié)議將一幀數(shù)據(jù)發(fā)送出去即可。在接收時,接受完一幀數(shù)據(jù)后,在按照協(xié)議規(guī)定的數(shù)據(jù)格式將數(shù)據(jù)“剝離”開,在按照數(shù)據(jù)的地址分配到相應(yīng)的總線上即可。

        2.2 數(shù)據(jù)處理的要求

        從本設(shè)計的需求來說,異步通信模塊與嵌入式計算機(jī)通信的數(shù)據(jù)量并不是很高,與嵌入式計算機(jī)通信所定義的HDLC協(xié)議也十分簡單,沒有規(guī)定過多的應(yīng)答數(shù)據(jù);硬件上也采用SPI的3根線,即接收、發(fā)送和地線,沒有其它的應(yīng)答信號。異步通信模塊與嵌入式計算機(jī)通信是一個被動的過程,在這種情況下,可以想象,嵌入式計算機(jī)向FPGA發(fā)送數(shù)據(jù)在時間上具有一定的隨機(jī)性,可以發(fā)完一幀數(shù)據(jù)后馬上發(fā)送下一幀數(shù)據(jù),或者等待一段時間后再發(fā)送一幀數(shù)據(jù),而FPGA接收數(shù)據(jù)是以幀為單位進(jìn)行接受,即每次接受一幀數(shù)據(jù)送入緩存器中,然后將緩存器中的數(shù)據(jù)進(jìn)行處理,處理完畢后再接收下一幀數(shù)據(jù),而對于這種被動的接收勢必對處理的速度有很高的要求,即接收到一幀數(shù)據(jù)后,迅速將數(shù)據(jù)讀出,清空緩沖區(qū),等待下一幀數(shù)據(jù)的到來。

        在發(fā)送上也采取這種策略,將所要發(fā)送的數(shù)據(jù)迅速裝入緩沖區(qū),做到不影響發(fā)送數(shù)據(jù)的連貫性。

        為了提高讀寫速度,緩沖區(qū)采用同步先入先出堆棧(fifo),不用送地址,只要將讀、寫信號有效,然后送時鐘信號即可進(jìn)行數(shù)據(jù)的高速度寫。

        為了保持?jǐn)?shù)據(jù)的可靠性,在接收上要做一定的差錯控制。

        3 內(nèi)部模塊設(shè)計與實現(xiàn)

        異步通信模塊主要由發(fā)送部分和接收部分組成,設(shè)計利用ISE平臺實現(xiàn),全部采用VHDL語言完成每個子模塊的設(shè)計。

        3.1 發(fā)送部分

        發(fā)送模塊功能是將8路步進(jìn)電機(jī)實際位置的總線上的數(shù)據(jù)按照HDLC協(xié)議通過串行通信發(fā)送到嵌入式計算機(jī)中。主要包括復(fù)位電路模塊(reset_core)、發(fā)送控制模塊(transtmit_ctrl)、波特率分頻模塊(fen)、HDLC協(xié)議控制時鐘分頻模塊(FEN_HDLC)、先入先出堆棧(FIFO_T)、HDLC協(xié)議控制模塊(TX_HDLC)、異步通信發(fā)送模塊(UART_T)等7個模塊。

        3.1.1 reset_core模塊

        該模塊負(fù)責(zé)在上電后維持1μs的高電平,將內(nèi)部工作的所有模塊中的狀態(tài)機(jī)復(fù)位,然后維持低電平,讓內(nèi)部模塊開始工作。

        3.1.2 transtmit_ctrl模塊

        此模塊的功能是將8路步進(jìn)電機(jī)的實際位置循環(huán)掃描寫入到FIFO_T堆棧中,特點是:(1)快速寫入數(shù)據(jù),采用系統(tǒng)時鐘16MHz,用5個周期完成一個數(shù)據(jù)的寫入。相對于9600波特率的異步通信來說,此速度能夠保持發(fā)送數(shù)據(jù)的連貫性,保證系統(tǒng)的實時性。(2)寫入FIFO_T中的數(shù)據(jù)格式按照先后為:地址位——數(shù)據(jù)位高字節(jié)——數(shù)據(jù)位低字節(jié)。(3)利用狀態(tài)機(jī)控制,并且在控制上采用控制信號和數(shù)據(jù)傳輸與處理分開,利用狀態(tài)機(jī)組合進(jìn)程產(chǎn)生控制信號,在其它進(jìn)程利用前者產(chǎn)生的控制信號控制數(shù)據(jù)的傳輸與處理,確保數(shù)據(jù)傳送有足夠的建立時間和保持時間,保證數(shù)據(jù)的穩(wěn)定和可靠。此狀態(tài)機(jī)充分考慮了和其他模塊之間信號的通信,數(shù)據(jù)穩(wěn)定的建立、保持時間。完成后的狀態(tài)機(jī)將要發(fā)送的數(shù)據(jù)送到了深度為3個字節(jié)的FIFO模塊中,并且控制HDLC模塊將數(shù)據(jù)讀出發(fā)送出去。(4)狀態(tài)機(jī)組合邏輯進(jìn)程,該進(jìn)程在各個控制信號定義是盡量保持控制信號只在一個狀態(tài)有效,避免狀態(tài)轉(zhuǎn)換過程中出現(xiàn)毛刺。在此進(jìn)程中并沒有進(jìn)行數(shù)據(jù)的傳輸,只是通過狀態(tài)的轉(zhuǎn)換送出控制信號。(5)描述鍵盤狀態(tài)緩沖器信號進(jìn)程。在上一個進(jìn)程中可以看到,當(dāng)鍵盤狀態(tài)緩沖器為低電平時,地址指向鍵盤地址,此時若模塊處于向堆棧數(shù)據(jù)過程中,很容易將先前的數(shù)據(jù)覆蓋,所以該信號應(yīng)該保證在寫堆棧到來期間無效,并且在完成后聯(lián)合調(diào)試過程中發(fā)現(xiàn),每次按鍵應(yīng)該保證只向嵌入式計算機(jī)發(fā)送一次數(shù)據(jù),多次發(fā)送將會引起嵌入式計算機(jī)的誤動作。該進(jìn)程的功能就是使得每次按鍵后在等待發(fā)送數(shù)據(jù)過程中將鍵值捕獲,然后保證只發(fā)送一次。(6)鍵盤狀態(tài)寄存器描述進(jìn)程,該進(jìn)程是用鍵盤到來信號緩沖器來鎖存鍵盤狀態(tài)寄存器,使得數(shù)據(jù)能夠保持一個完整地寫周期。(7)數(shù)據(jù)選通進(jìn)程,由地址來控制,負(fù)責(zé)將各路數(shù)據(jù)送到緩沖器中。各個進(jìn)程之間利用信號來傳遞,互相協(xié)調(diào)工作,是一個完整的統(tǒng)一體,由寫信號作為預(yù)留,在需要時可以進(jìn)行擴(kuò)展和添加。

        3.1.3 fifo_t模塊

        此模塊是一個深度為3個字節(jié)的同步FIFO(先入先出堆棧),用來將地址、高字節(jié)數(shù)據(jù)、低字節(jié)數(shù)據(jù)寄存。

        由于此模塊為一個同步FIFO,而本設(shè)計中的讀寫是分開的,讀寫的速度也不相同,寫的時候要求高速寫入,不影響通信的連貫性,讀的時候根據(jù)發(fā)送模塊的速度來讀取數(shù)據(jù),所以讀、寫時鐘用兩個模塊中的狀態(tài)機(jī)產(chǎn)生,為了不產(chǎn)生沖突,兩個模塊在空閑狀態(tài)將時鐘送出低電平,然后將兩個始終用一個或門連接,送入FIFO中進(jìn)行控制。

        3.1.4 Tx_HDLC模塊

        該模塊主要負(fù)責(zé)以下幾個功能:

        (1)FIFO的讀操作。將FIFO中的地址、高位字節(jié)數(shù)據(jù)、低位字節(jié)數(shù)據(jù)讀出來。(2)HDLC協(xié)議的控制。包括產(chǎn)生幀頭、幀尾數(shù)據(jù)(7E)附到數(shù)據(jù)流上,產(chǎn)生CRC校驗多項式,將多項式的結(jié)果附到數(shù)據(jù)的尾部。(3)發(fā)送數(shù)據(jù)控制。利用狀態(tài)機(jī)控制發(fā)送程序,將處理好的一幀數(shù)據(jù)發(fā)送到嵌入式計算機(jī)上。

        模塊特點:

        (1)流水線作業(yè),將FIFO中的數(shù)據(jù)讀出來后進(jìn)行并-串轉(zhuǎn)換,將串行數(shù)據(jù)用流水線進(jìn)行CRC運算,然后再進(jìn)行串-并轉(zhuǎn)換將數(shù)據(jù)發(fā)送出去。(2)利用程序計數(shù)器進(jìn)行時序控制,控制流水線的操作。(3)利用狀態(tài)機(jī)控制發(fā)送程序,并且控制和數(shù)據(jù)傳送分開,保證數(shù)據(jù)傳送有足夠的建立時間和保持時間。(4)增加數(shù)據(jù)鎖存語句,使得每次處理完的數(shù)據(jù)都能夠穩(wěn)定一段時間,增強(qiáng)數(shù)據(jù)的可靠性。

        3.1.5 異步通信發(fā)送模塊

        采用波特率為9600,數(shù)據(jù)為8位,偶校驗方式發(fā)送數(shù)據(jù),發(fā)送時序為:

        (1)腳至為低電平,此時內(nèi)部狀態(tài)標(biāo)志復(fù)位,將TRBL置為高電平。(2)將數(shù)據(jù)送入端口準(zhǔn)備好,將TRBL信號置為低電平,此時TRE引腳邊為低電平,裝入數(shù)據(jù),開始傳送。(3)RBL置為高電平,等待數(shù)據(jù)發(fā)送完成后,輸出引腳TRE變?yōu)楦唠娖健?/p>

        3.2 接收部分

        接收部分實現(xiàn)的功能是將嵌入式計算機(jī)發(fā)送過來的步進(jìn)電機(jī)預(yù)制位置、實際位置等數(shù)據(jù)送入相應(yīng)的數(shù)據(jù)總線上。嵌入式計算機(jī)通過COM口發(fā)送數(shù)據(jù),通信協(xié)按照HDLC協(xié)議,根據(jù)發(fā)送數(shù)據(jù)的格式規(guī)定,該部分主要由接收數(shù)據(jù)模塊(UART_R),接收控制模塊(UART_CTRL),先入先出堆棧(FIFO)模塊,檢錯控制模塊(MONITOR),數(shù)據(jù)控制模塊(MCU),裝載信號延時模塊(LOAD_DELAY)。

        接收過程將一幀數(shù)據(jù)中的有效數(shù)據(jù)按照規(guī)定送到相應(yīng)的數(shù)據(jù)總線上。工作流程如下:

        (1)UART_R負(fù)責(zé)接收上位及發(fā)送過來的數(shù)據(jù),每次接受一個字節(jié)。(2)接收過程受UART_CTRL控制,由UART_CTRL內(nèi)部的狀態(tài)機(jī)形成的時序來控制UART_R模塊,然后將接收到的1幀數(shù)據(jù)寫入FIFO。(3)MCU模塊負(fù)責(zé)協(xié)調(diào)整個系統(tǒng)的工作,包括所有模塊的初始化,數(shù)據(jù)控制,當(dāng)檢測到FIFO中的數(shù)據(jù)被寫滿,則將一幀數(shù)據(jù)從FIFO高速讀出,高速讀出是為了不影響數(shù)據(jù)的接收,然后按照地址將數(shù)據(jù)分配到相應(yīng)的總線上。(4)數(shù)據(jù)接收需要差錯控制,幀數(shù)據(jù)不完整和不同步都視為錯誤數(shù)據(jù),由內(nèi)部邏輯和MONITOR產(chǎn)生控制信號。

        3.2.1 接收數(shù)據(jù)模塊(UART_R)

        MR為高電平時,將模塊內(nèi)部寄存器復(fù)位;MR為低電平時,啟動整個模塊,此時應(yīng)將DRR置成低電平,將輸出引腳DR置為低電平,然后再將DRR置為高電平,開始接收數(shù)據(jù)。接收數(shù)據(jù)按照9600的波特率,數(shù)據(jù)接收完畢后DR送出高電平,RBR[7..0]輸出接收到的數(shù)據(jù)。時序圖如圖2所示。

        3.2.2 接收控制模塊(UART_CTRL)

        接收控制模塊負(fù)責(zé)啟動接收模塊接收嵌入式計算機(jī)發(fā)送過來的數(shù)據(jù),并將數(shù)據(jù)寫入FIFO堆棧中。該模塊受MCU模塊控制,并和器協(xié)調(diào)工作,主要操作即是對FIFO的讀寫。該模塊沒有任何的總線傳輸,只是靠狀態(tài)機(jī)控制一些輸入輸出信號控制接收模塊和先入先出堆棧之間的數(shù)據(jù)通信。

        3.2.3 檢錯控制模塊(MONITOR)

        在接收模塊工作期間,MCU讀FIFO是采用16M時鐘控制,高速讀取是為了不影響數(shù)據(jù)的接收,每來一幀數(shù)據(jù),MCU模塊會迅速將FIFO中的數(shù)據(jù)讀空,使得FIFO的外部信號EMPTY,迅速處于高電平,也就是說,在接收到完整的一幀數(shù)據(jù)的情況下,EMPTY信號會形成一個短暫的高電平,當(dāng)通信出現(xiàn)問題,上位機(jī)還為發(fā)送完一幀數(shù)據(jù)就停止數(shù)據(jù)的發(fā)送,這時UARTR_CTRL將會繼續(xù)等待數(shù)據(jù)的到來,F(xiàn)IFO輸出的EMPTY信號也一直維持低電平,造成通信惡化,解決辦法即是加入了此模塊進(jìn)行控制。

        此模塊相當(dāng)于一個看門狗定時器,外部信號只有3個,EMPTY,CLK為輸入信號。CLK為計數(shù)時鐘,引自波特率時鐘分頻器,EMPTY每來一個高脈沖(喂狗)將內(nèi)部計數(shù)器清零,視為數(shù)據(jù)正確,ERROR送出低電平,當(dāng)EMPTY長時間處于低電平,計數(shù)器計到2000后將ERROR自成一個高電平,將系統(tǒng)復(fù)位,再回到低電平。

        3.2.4 數(shù)據(jù)控制模塊(MCU)

        數(shù)據(jù)控制模塊負(fù)責(zé)將FIFO中的一幀數(shù)據(jù)讀出來,然后按照數(shù)據(jù)格式中規(guī)定的數(shù)據(jù)格式,將數(shù)據(jù)送入相應(yīng)的數(shù)據(jù)總線上。該模塊主要特點:

        (1)數(shù)據(jù)的高速讀取,采用16MHz時鐘控制,不影響通信的速度。(2)數(shù)據(jù)的鎖存,由內(nèi)部狀態(tài)機(jī)產(chǎn)生控制信號,使得接收到的數(shù)據(jù)穩(wěn)定的鎖存到數(shù)據(jù)總線上。(3)差錯控制,配有簡單的差錯控制,當(dāng)幀數(shù)據(jù)不同步將總模塊重新復(fù)位,不會將錯誤的數(shù)據(jù)送到總線上。(4)狀態(tài)機(jī)控制時序清晰,每一部數(shù)據(jù)的傳輸都有足夠的建立/保持時間。

        4 異步通信模塊設(shè)計綜述

        該異步通信模塊實現(xiàn)了預(yù)期的設(shè)計功能,數(shù)據(jù)傳送較為可靠,但由于起初對設(shè)計需求分析不夠,系統(tǒng)中很多高級功能未被采用,例如HDLC協(xié)議中的插零,CRC校驗位沒有被采用,接收部分也沒有對接收到的CRC校驗位作處理,但是對于短波發(fā)射機(jī)自動調(diào)諧系統(tǒng)來說,由于通信數(shù)據(jù)量不大該設(shè)計已經(jīng)夠用,該通信模塊已經(jīng)使用8年,沒有出現(xiàn)任何問題,說明該設(shè)計是成功的,確保了我局安全傳輸發(fā)射工作。

        參考文獻(xiàn)

        [1]黃曉兵.TBH522型150KW短波發(fā)射機(jī)維護(hù)手冊[M].中國書籍出版社.

        [2]湯永福.TBH522型150KW短波發(fā)射機(jī)自動調(diào)諧控制系統(tǒng)[Z].內(nèi)部使用.

        作者簡介:林大橋(1973-),男,漢族,福建龍巖人,國家新聞出版廣電總局七三一臺,工程碩士,本科,高級工程師。

        最新国产成人在线网站| 女人被狂躁c到高潮| a人片在线观看苍苍影院| 免费中文熟妇在线影片| 中文字幕被公侵犯的丰满人妻| 亚洲av不卡一区男人天堂| 天天鲁在视频在线观看| 国产小视频网址| 亚洲综合精品一区二区三区| 视频在线国产一区二区| 香蕉人人超人人超碰超国产| 久久噜噜噜| 久久精品国产亚洲av一| 成熟人妻换xxxx| 久久精品国产亚洲av蜜臀| 91精品91| 亚洲精品中文字幕91| 国产精品区一区二区三在线播放| 亚洲一区av无码少妇电影| 亚洲免费毛片网| 中文字幕一二三四五六七区| 又色又爽又高潮免费视频观看| 日韩久久一级毛片| 国产av一区二区三区在线| 在线人成视频播放午夜| 真人无码作爱免费视频禁hnn| 精品一区二区三区久久久| 精品人妻在线一区二区三区在线 | 手机在线中文字幕av| 午夜精品久久久久久久久| 久久棈精品久久久久久噜噜| 国产AV无码无遮挡毛片| 粉嫩极品国产在线观看免费一区| 欧美人妻日韩精品| 国产最新一区二区三区天堂| 日本频道一区二区三区| 久久久久人妻一区精品| 香蕉视频一级| 国产精品国产三级国a| 无套内谢老熟女| 精品国产高清a毛片无毒不卡|