海裝裝備采購(gòu)中心 阮 進(jìn)
中電集團(tuán)10所 鄧 欣
基于DSP的多串口軍事通信系統(tǒng)的設(shè)計(jì)方法
海裝裝備采購(gòu)中心 阮 進(jìn)
中電集團(tuán)10所 鄧 欣
針對(duì)軍事通信系統(tǒng)中數(shù)字信號(hào)處理器(Digital Signal Process,簡(jiǎn)稱DSP)的外設(shè)串口資源的有限,不適用與多個(gè)外部設(shè)備通信的情況,提出了一種DSP多串口軍事通信系統(tǒng)的設(shè)計(jì)方法,不但實(shí)現(xiàn)了DSP外部串口的擴(kuò)展,并保證在大數(shù)據(jù)量、多串口通信情況下軍事通信系統(tǒng)的高效可靠的數(shù)據(jù)傳輸性能。通過(guò)實(shí)際測(cè)試驗(yàn)證了該方法的有效性。
DSP;多串口通信;ST16C554
隨著電子技術(shù)的日益發(fā)展,DSP作為一種運(yùn)算速度快、處理功能強(qiáng)大的單片微處理器,已廣泛應(yīng)用于控制系統(tǒng)、電氣設(shè)備、信號(hào)處理及通信系統(tǒng)等領(lǐng)域。尤其在實(shí)時(shí)信號(hào)處理和綜合控制方面,當(dāng)DSP作為通信數(shù)據(jù)處理的核心處理器時(shí),常需與多個(gè)外部設(shè)備進(jìn)行串口通信,但DSP的串行外設(shè)接口資源的有限成為多串口通信處理的瓶頸。如何擴(kuò)展DSP的串行外設(shè)接口,保證多串口通信的快速、穩(wěn)定和可靠,成為系統(tǒng)設(shè)計(jì)的關(guān)鍵。
近年來(lái),DSP串口擴(kuò)展的設(shè)計(jì)方法得到了大量的研究和應(yīng)用[1~4],尤其在軍事通信系統(tǒng)中,為保證多通信單元間的高速、穩(wěn)定、可靠的數(shù)據(jù)傳輸,多串口通信設(shè)計(jì)方法也得到了深入研究。經(jīng)典設(shè)計(jì)方法有采用現(xiàn)場(chǎng)可編程門陣列(FPGA)實(shí)現(xiàn)串口數(shù)據(jù)的收發(fā)和存儲(chǔ)[1,2],該方法成本低,但編程復(fù)雜、開發(fā)周期長(zhǎng)、可靠性低;文獻(xiàn)[3]采用異步通信芯片ST16C554實(shí)現(xiàn)串口數(shù)據(jù)的收發(fā)和存儲(chǔ),再通過(guò)FPGA邏輯電路進(jìn)行多串口中斷管理,ST16C554芯片的串口通信處理可靠性高,開發(fā)設(shè)計(jì)簡(jiǎn)單,但其發(fā)送/接收緩存單元(FIFO)的空間有限,當(dāng)大量數(shù)據(jù)經(jīng)多串口同時(shí)傳輸時(shí)會(huì)出現(xiàn)數(shù)據(jù)丟失情況,限制了DSP的串口通信能力。
基于軍事通信系統(tǒng)對(duì)數(shù)據(jù)傳輸高穩(wěn)定性和低誤碼率的要求,本文提出一種DSP多串口軍事通信系統(tǒng)設(shè)計(jì)方法。該方法可實(shí)現(xiàn)DSP串口擴(kuò)展,并保證快速、可靠的通信傳輸。通過(guò)實(shí)際設(shè)備檢測(cè),驗(yàn)證了該通信系統(tǒng)具有高效穩(wěn)定的數(shù)據(jù)通信性能。
本設(shè)計(jì)主要由中斷管理單元和全局異步發(fā)送接收(UART)單元兩部分構(gòu)成,如圖1所示的DSP多串口通信系統(tǒng)原理框圖。通信系統(tǒng)中可有多個(gè)UART單元,一個(gè)UART單元收發(fā)四個(gè)外部串口數(shù)據(jù),當(dāng)每接收到一串口數(shù)據(jù)時(shí),UART單元將產(chǎn)生一中斷請(qǐng)求信號(hào)INTi(i=1,2…n),送至中斷管理單元。中斷管理單元采用多串口共享一個(gè)中斷源的方式來(lái)管理多串口通信,先從UART單元取出串口數(shù)據(jù)存入對(duì)應(yīng)的存儲(chǔ)器,并將各串口中斷請(qǐng)求通過(guò)中斷處理后輸出串口通信中斷信號(hào)D_INT,作為DSP的外部中斷。DSP響應(yīng)中斷,從FPGA中查詢8位串口中斷狀態(tài)標(biāo)志字IFAG,選擇當(dāng)前優(yōu)先級(jí)最高的串口進(jìn)行通信。完成通信后,清除中斷狀態(tài)標(biāo)志字的相應(yīng)位,重新開啟中斷。
圖1 DSP多串口通信系統(tǒng)原理框圖
3.1 UART單元
UART單元主要實(shí)現(xiàn)各串口數(shù)據(jù)的收發(fā)功能。選取EXAR公司生產(chǎn)的全局異步收發(fā)芯片ST16C554,增加擴(kuò)展串口通道。外部串行接口多為可靠性高的RS422標(biāo)準(zhǔn)差分電平信號(hào),可采用Maxim公司的標(biāo)準(zhǔn)RS422電平轉(zhuǎn)換器,將串口信號(hào)轉(zhuǎn)為TTL電平后送至ST16C554。
(1)RS422電平轉(zhuǎn)換器MAX3462
電路設(shè)計(jì)可根據(jù)電平要求、傳輸速率等因素選擇不同型號(hào)的MAX系列芯片。本文設(shè)計(jì)選取型號(hào)MAX3462,該芯片為高速差分RS422/RS485標(biāo)準(zhǔn)電平轉(zhuǎn)換器,具有高達(dá)20Mbps數(shù)據(jù)傳輸速率,采用全雙工傳輸方式,接收具有失效保護(hù)的功能,具有較強(qiáng)差分驅(qū)動(dòng)能力,適用于高速數(shù)據(jù)傳輸和較遠(yuǎn)距離數(shù)據(jù)傳輸。
(2)異步串口通信芯片ST16C554
ST16C554芯片為一種應(yīng)用廣泛的全局異步收發(fā)器,具有四個(gè)通道獨(dú)立接收發(fā)送數(shù)據(jù),數(shù)據(jù)傳輸速率最高為1.5Mbps(外部晶振為24M),波特率和數(shù)據(jù)收發(fā)格式可編程設(shè)置,具有最高16字節(jié)收發(fā)緩存FIFO,且有1、4、8、14字節(jié)四個(gè)可選擇的中斷觸發(fā)深度。
(3)UART單元接口設(shè)計(jì)
圖2 UART單元原理框圖
如圖2所示,ST16C554芯片的四個(gè)收發(fā)通道經(jīng)MAX3462連至外部串口,數(shù)據(jù)/地址總線和其他控制信號(hào)均與FPGA的I/O相連。ST16C554的時(shí)鐘可由晶振或FPGA產(chǎn)生的時(shí)鐘供給。
3.2 中斷管理單元
中斷管理單元主要由FPGA邏輯電路設(shè)計(jì)實(shí)現(xiàn)其各項(xiàng)功能。
(1)多串口數(shù)據(jù)存儲(chǔ)
由于ST16C554芯片只有16字節(jié)的緩存空間,當(dāng)幾個(gè)串口均有大數(shù)據(jù)量的通信時(shí),會(huì)產(chǎn)生數(shù)據(jù)丟失。本設(shè)計(jì)采用在FPGA內(nèi)部建立緩存空間,給各串口均配有一個(gè)雙端口RAM(DPRAM)。DPRAM包含兩個(gè)獨(dú)立的端口,共用一塊地址空間,兩端口均可向這塊空間里寫數(shù)據(jù)或從中讀取數(shù)據(jù),這里采用先讀后寫模式,并根據(jù)各串口一次收發(fā)數(shù)據(jù)量情況設(shè)定空間容量用來(lái)存儲(chǔ)串口數(shù)據(jù)。
由各UART單元輸出的中斷請(qǐng)求信號(hào)INT1~I(xiàn)NTn進(jìn)入FPGA后,首先進(jìn)行鍵寬處理,延遲100ns后輸出,以避免信號(hào)中的毛刺引起中斷觸發(fā)。FPGA根據(jù)各串口的中斷請(qǐng)求信號(hào)從ST16C554的總線讀取接收到的數(shù)據(jù),將其存入對(duì)應(yīng)的DPRAM中。
(2)多串口中斷管理設(shè)計(jì)
本設(shè)計(jì)采用一個(gè)中斷源管理多串口通信的方法。鍵寬后的各串口中斷請(qǐng)求信號(hào)相或產(chǎn)生F_INT信號(hào),同時(shí)設(shè)置8位串口狀態(tài)標(biāo)志字IFAG(每一位代表一串口中斷請(qǐng)求標(biāo)志)。
圖3 中斷管理狀態(tài)圖
當(dāng)DSP準(zhǔn)備好進(jìn)行串口通信時(shí),控制FPGA產(chǎn)生一中斷允許信號(hào)INT_EN。中斷管理單元根據(jù)INT_EN信號(hào)和F_INT信號(hào)產(chǎn)生送至DSP的串口通信中斷信號(hào)D_INT。中斷管理時(shí)序如圖3所示,在DSP進(jìn)入中斷服務(wù)程序期間, INT_EN設(shè)置為0,禁止中斷管理模塊產(chǎn)生新的DSP中斷信號(hào);若此時(shí)有新的串口中斷請(qǐng)求產(chǎn)生,中斷管理單元將鎖存該中斷信號(hào),一直等待DSP結(jié)束上一中斷服務(wù)程序,INT_EN被重置為1,便產(chǎn)生新的DSP中斷信號(hào)D_INT,觸發(fā)DSP響應(yīng)中斷,接收新的串口數(shù)據(jù)。
D_INT信號(hào)的產(chǎn)生由FPGA設(shè)計(jì)一個(gè)8位狀態(tài)機(jī)實(shí)現(xiàn)。中斷管理狀態(tài)圖(描述8位狀態(tài)機(jī)的轉(zhuǎn)換)如圖4所示。狀態(tài)機(jī)由XCLK驅(qū)動(dòng),XCLK為FPGA通過(guò)分頻生成的1MHz時(shí)鐘,即△t=1μs。在退出中斷時(shí),將INT_EN設(shè)置為1,從狀態(tài)S3轉(zhuǎn)換到狀態(tài)S0,經(jīng)歷5個(gè)狀態(tài)轉(zhuǎn)換,時(shí)間延遲td=5△t=5μs,確保當(dāng)前中斷完全退出。F_INT鎖存中斷請(qǐng)求,以確保下一中斷能獲得響應(yīng)。
圖4 中斷管理時(shí)序圖
該DSP多串口通信系統(tǒng)的軟件主要為DSP的編程軟件,關(guān)于多串口通信的軟件設(shè)計(jì)包括ST16C554的初始化、多串口數(shù)據(jù)收發(fā)等。
DSP需對(duì)各ST16C554的每個(gè)串口進(jìn)行初始化,初始化內(nèi)容包括:(1)設(shè)置串口波特率;(2)設(shè)置傳輸數(shù)據(jù)格式;(3)選擇收發(fā)緩存單元FIFO的工作模式;(4)允許接收保持寄存器中斷。
DSP的多串口通信軟件流程如下:(1)DSP外設(shè)中斷初始化;(2)設(shè)置FPGA的中斷允許信號(hào)INT_EN=1;(3)當(dāng)有串口中斷時(shí),進(jìn)入中斷服務(wù)程序,設(shè)置INT_EN=0;(4)根據(jù)串口狀態(tài)標(biāo)志字從相應(yīng)的DPRAM中讀取串口數(shù)據(jù);當(dāng)多個(gè)串口通道同時(shí)收到數(shù)據(jù)時(shí),DSP根據(jù)系統(tǒng)設(shè)定的串口通信優(yōu)先級(jí)選取優(yōu)先級(jí)高的串口先進(jìn)行通信;(5)串口數(shù)據(jù)接收完成后,退出中斷服務(wù)程序;當(dāng)DSP準(zhǔn)備接收下一串口中斷時(shí),重新設(shè)置INT_EN=1。
對(duì)本文設(shè)計(jì)的DSP多串口通信系統(tǒng)進(jìn)行測(cè)試,測(cè)試結(jié)果如下:
表2 本文方法測(cè)試結(jié)果
由表2可見,對(duì)于單通道和多通道同時(shí)工作情況,串口通信不受字節(jié)長(zhǎng)度影響,均能正確接收,驗(yàn)證了本文方法具有良好的多串口通信性能,滿足DSP通信系統(tǒng)的實(shí)際需要。
為實(shí)現(xiàn)在軍事通信系統(tǒng)中DSP的多串口通信,本文設(shè)計(jì)了一種基于ST16C554芯片的串口擴(kuò)展方法。該設(shè)計(jì)主要由UART單元和中斷管理單元兩部分構(gòu)成,UART單元完成串口數(shù)據(jù)的收發(fā)功能,中斷管理單元實(shí)現(xiàn)多串口通信的管理。本方法解決了大數(shù)據(jù)量的多串口通信的數(shù)據(jù)丟失情況,提高了串口中斷響應(yīng)速度,適用于DSP與外部多個(gè)設(shè)備的數(shù)據(jù)通信。
[1]董長(zhǎng)富,郭超平,宋渝.基于FPGA的多串口模塊的設(shè)計(jì)和實(shí)現(xiàn)[J].電子元器件應(yīng)用,2006,11(8):43-46.
[2]趙權(quán),劉翠玲.基于FPGA的通用異步收發(fā)機(jī)的設(shè)計(jì)[J].北京工商大學(xué)學(xué)報(bào),2008,26(1):53-56.
[3]黃鄭,夏建剛.在CPLD管理下實(shí)現(xiàn)高效多串口中斷源[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002,10:34-36.
[4]張曉峰,李悅麗,黎向陽(yáng),張強(qiáng).一種基于FPGA和SC16C554實(shí)現(xiàn)多串口通信的方法[J].電子技術(shù),2009,6.
通過(guò)調(diào)整神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的個(gè)數(shù)進(jìn)行多次的模擬,發(fā)現(xiàn)隱含層神經(jīng)元個(gè)數(shù)為3~5時(shí)迭代次數(shù)少,擬合效果好,因此選擇隱含層神經(jīng)元數(shù)量為3個(gè)是合理的,具體情況如表1所示。將采集到的數(shù)據(jù)經(jīng)過(guò)歸一化處理之后對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到了符合要求的神經(jīng)網(wǎng)絡(luò)模型,這個(gè)模型完整地模擬了研磨機(jī)隨著磨盤的磨損導(dǎo)致研磨時(shí)間的變化,能夠很好地優(yōu)化整個(gè)研磨機(jī)的工作過(guò)程。
表1 不同隱含層神經(jīng)元數(shù)據(jù)擬合情況
參考文獻(xiàn)
[1]周以亮.燈飾研磨機(jī)的數(shù)控系統(tǒng)設(shè)計(jì)[D].杭州電子科技大學(xué),2014.
[2]王遠(yuǎn)隆.BP神經(jīng)網(wǎng)絡(luò)控制應(yīng)用的基本問(wèn)題[J].機(jī)械與電子,2010(S1): 119-124.
[3]Xiaotai Wu,Yang Tang,Wenbing Zhang. Stability analysis of switched stochastic neural networks with time-varying delays[J].Neural Networks,2014,51.
[4]劉寶.基于AT91SAM9261的嵌入式水晶磨削控制系統(tǒng)的研究與開發(fā)[D].重慶大學(xué),2012.
朱詩(shī)榜(1992—),浙江溫州人,在讀碩士,現(xiàn)就讀于杭州電子科技大學(xué)。
通過(guò)對(duì)水晶研磨機(jī)的研磨時(shí)間的分析,建立了BP神經(jīng)網(wǎng)絡(luò)模型,