文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190261
中文引用格式: 楊慶國,,陳軍,,肖貴林. 基于TMS320C6748的多路串行通信接口設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2019,,45(7):59-62.
英文引用格式: Yang Qingguo,,Chen Jun,Xiao Guilin. Design and implementation of multi-channel serial communication interface based on TMS320C6748[J]. Application of Electronic Technique,,2019,,45(7):59-62.
0 引言
微處理器DSP是一種為實現(xiàn)數(shù)字信號處理算法而生的器件[1],,其硬件結(jié)構(gòu)上的特殊性表現(xiàn)在內(nèi)部存儲器采用程序總線和數(shù)據(jù)總線分開的哈佛結(jié)構(gòu),具有專門的硬件乘法器[2]。但在嵌入式DSP系統(tǒng)應(yīng)用領(lǐng)域中,,一般需要它同時與多個外部設(shè)備進(jìn)行數(shù)據(jù)交互和通信[3],,其中串行通信接口因其簡單可靠,仍是目前廣泛采用的技術(shù)[4],,而當(dāng)前的DSP的串口較少,,滿足不了多路串行通信接口能力。
本文采用高速浮點(diǎn)處理器DSP作為嵌入式飛行控制系統(tǒng)的核心處理芯片,,可實時地完成系統(tǒng)運(yùn)算和控制,,充分發(fā)揮DSP在數(shù)字信號處理方面的技術(shù)優(yōu)勢[5]。設(shè)計了一種基于TMS320C6748的多路串行通信接口電路,,采用異步通信協(xié)議芯片TL16C754和3-8譯碼器74LS138實現(xiàn)多路串行通信接口的集成與擴(kuò)展,,底層驅(qū)動基于TI的實時操作系統(tǒng)內(nèi)核SYS/BIOS進(jìn)行開發(fā)。不但減小了軟件開發(fā)難度,,而且可以保障系統(tǒng)的穩(wěn)定性,,使得開發(fā)周期大大縮短。
1 硬件電路設(shè)計
1.1 系統(tǒng)架構(gòu)設(shè)計
基于DSP處理器的多路串行通信接口系統(tǒng)(以下簡稱接口系統(tǒng))主要由控制電路和接口電路組成,,系統(tǒng)架構(gòu)如圖1所示,。其中,控制電路是系統(tǒng)的核心處理模塊,,主要包括DSP處理器,、存儲器、復(fù)位電路,、時鐘電路,、電源電路和JTAG等輔助電路;接口電路是實現(xiàn)多路串行通信的模塊,,主要包括協(xié)議處理器,、譯碼器、隔離電路和電平轉(zhuǎn)換電路等,。
1.2 控制電路設(shè)計
核心處理器DSP選用TI的浮點(diǎn)運(yùn)算低功耗芯片TMS320C6748,,其主頻為456 MHz,,具有高達(dá)3 648 MIPS和2 756 MFLOPS的運(yùn)算能力,。
時鐘電路采用時鐘信號為24 MHz OSC外部時鐘晶體輸出。
電源電路采用集成電源供電方式,,即內(nèi)核電壓和I/O電壓通過同一塊電源模塊供電,,內(nèi)核電壓為1.2 V,I/O電壓為1.8 V和3.3 V,,本系統(tǒng)采用了效率較高的電源管理芯片TPS650061RUK,,其效率可以到90%,而且要求的壓降小。
復(fù)位電路采用基于IPM811復(fù)位芯片進(jìn)行設(shè)計,,該芯片不僅具有上電復(fù)位和手動復(fù)位功能,,而且還具有電源電壓監(jiān)控功能,可輸出最小持續(xù)時間為140 ms的低電平有效復(fù)位信號,。
RAM存儲器采用TI的低功耗高速RAMMT47H64M16芯片,,可為DSP提供更大的程序執(zhí)行/數(shù)據(jù)存儲空間。Flash存儲器采用SPANSION公司的S29GL128N芯片,,用于系統(tǒng)軟件的固化存儲,。
1.3 接口電路設(shè)計
協(xié)議處理器采用TL16C754芯片,它是一款通用異步串行通信控制器,,具有自動軟件/硬件流控制能力,,具有可以儲存、緩沖兩個異步時鐘之間數(shù)據(jù)傳輸[6]的64字節(jié)FIFO,,并且通過可編程實現(xiàn)不同觸發(fā)水平來中斷,;可編制數(shù)據(jù)為5 bit、6 bit,、7 bit或8 bit,,用于UART并行數(shù)據(jù)和串行數(shù)據(jù)的格式轉(zhuǎn)換。譯碼器采用3-8譯碼器74LS138芯片,,可進(jìn)行8 bit數(shù)據(jù)轉(zhuǎn)換,。
系統(tǒng)通過TMS320C6748的EMIF數(shù)據(jù)總線與16C754A的8 bit數(shù)據(jù)總線連接,將TL16C754的地址配置在EMIF映射空間內(nèi),,TMS320C6748的EMIF地址總線通過3-8譯碼器74LS138用于擴(kuò)展8 bit片選信號,,實現(xiàn)對8路RS422接口信號的選通。
隔離電路采用ADI公司的六通道數(shù)字隔離器ADuM7643,,實現(xiàn)接口電路的數(shù)字隔離,。
電平轉(zhuǎn)換電路采用驅(qū)動總線收發(fā)器MAX490,實現(xiàn)RS422信號收發(fā)功能,。它是一款低功耗收發(fā)器,,用于RS422等串行數(shù)據(jù)接口標(biāo)準(zhǔn)系統(tǒng)中[7],內(nèi)部有驅(qū)動和接收兩個模塊,,最大傳輸速率為2.5 Mb/s,。
在硬件設(shè)計中,采用EMIF接口8位數(shù)據(jù)線與TL16C754端口一一對應(yīng),,保證DSP與外部設(shè)備的正常通信,,當(dāng)外部數(shù)據(jù)發(fā)送過來,會觸發(fā)DSP的外部中斷,。在譯碼器電路中,,通過3個地址信號產(chǎn)生8路不同的片選信號,,當(dāng)譯碼器產(chǎn)生一路選通,對應(yīng)的并行數(shù)據(jù)就會傳輸?shù)娇偩€上,,等待接收,,接口電路原理圖如圖2所示。
2 驅(qū)動軟件實現(xiàn)
DSP驅(qū)動軟件是基于TI的SYS/BIOS操作系統(tǒng)進(jìn)行設(shè)計開發(fā),,開發(fā)環(huán)境選擇CCS5.5(Code Composer Studio),。系統(tǒng)的軟件分為:系統(tǒng)初始化模塊、UART驅(qū)動模塊,、系統(tǒng)中斷模塊,。利用SYS/BIOS的多線程中斷控制來實現(xiàn)多路串行通信接口的功能,系統(tǒng)上電后硬件系統(tǒng)自動將Flash存儲器中的程序加載到256 KB的片內(nèi)存儲器中開始運(yùn)行,。
首先,,執(zhí)行對設(shè)備的CPU初始化,運(yùn)行cinit初始化運(yùn)行環(huán)境,,調(diào)用SYS/BIOS系統(tǒng)函數(shù)初始化系統(tǒng)配置,;然后調(diào)用main函數(shù),完成EMIF總線與時鐘等的初始化,,完成系統(tǒng)自檢,、數(shù)據(jù)結(jié)構(gòu)初始化、UART初始化等工作,。在main函數(shù)結(jié)束返回后,,調(diào)用BIOS_start,使能硬件中斷,,開始按優(yōu)先級檢測并執(zhí)行串口硬件中斷服務(wù)子程序,,軟件的功能在這些中斷任務(wù)的驅(qū)動下完成,串口中斷主要完成數(shù)據(jù)的接收,。
本系統(tǒng)的軟件主要由DSP完成EMIF總線的讀寫時序和TL16C754的寄存器控制信號,。
(1)系統(tǒng)的初始化。初始化主要包括PLL配置,,管腳復(fù)用控制寄存器(PINMUXReg)的配置,,電源控制寄存器(PSC)的配置。因為TMS320C6748的管腳大多是復(fù)用的,,所以需要根據(jù)應(yīng)用條件配置相應(yīng)的PINMUX寄存器,。PSC是C67x的一大特色,通過配置PSC可獨(dú)立控制芯片某一部分的供電,,可以最大限度地降低功耗,。
(2)GPIO中斷配置,。TMS320C6748沒有獨(dú)立的外部中斷引腳,,是通過配置GPIO作為中斷源信號,在配置中斷時應(yīng)注意配置中斷的方向和觸發(fā)方式。
(3)時序控制,。通過配置CE4CFG寄存器對CE4空間的讀寫操作進(jìn)行控制,。CE4CFG可以控制建立、選通,、保持時間和數(shù)據(jù)寬度,。本文將UART擴(kuò)展在EMIFA的CE4空間商,CE4擴(kuò)展空間的基地址為0x64000000,,對UART進(jìn)行讀寫操作時,,對0x64000000地址進(jìn)行操作即可。DSP處理器通過WE,、OE和CE4信號控制串口芯片,,但需要3 bit地址線和CE4通過譯碼器片選8路UART信號。DSP對異步接口的讀取周期由建立時間,、選通時間和保持時間組成,。其關(guān)鍵程序設(shè)計如下:
EMIFWaitTimingConfig(SOC_EMIFA_0_REGS,CHIP_
SELECT_4,,EMIFA_ WAITTIME_CONFIG(1,2,1,1,2,1,0)),;
(4)多路UART中斷控制。TL16C754芯片提供4路中斷信號,,所以采用8路UART共享一個中斷資源的方式,,在SYS/BIOS中調(diào)用中斷4(INT4)并行處理8路UART數(shù)據(jù),其中斷處理流程如圖3所示,。
3 系統(tǒng)試驗驗證
3.1 單路串行接口測試
隨機(jī)選取一路串口進(jìn)行試驗測試,。首先,將接口系統(tǒng)的通信接口與PC的RS232串口相連,,PC按指定的配置參數(shù)啟動串口通信,,利用上位機(jī)測試軟件,向接口系統(tǒng)發(fā)送數(shù)據(jù),。該接口系統(tǒng)采用中斷方式對串口數(shù)據(jù)進(jìn)行接收,,數(shù)據(jù)接收完整后,接口系統(tǒng)會將數(shù)據(jù)轉(zhuǎn)發(fā)出來,,PC收到后將其與原始數(shù)據(jù)比較,,檢驗是否一致,若一致,,上位機(jī)測試軟件顯示串口測試成功,,其測試結(jié)果如圖4所示。試驗結(jié)果表明,,單路串行通信接口數(shù)據(jù)傳輸完整可靠,。
3.2 雙路串行接口測試
現(xiàn)場測試時,,隨機(jī)選取接口系統(tǒng)的兩路RS422串口與外部的GPS接收機(jī)和IMU的串口連接,接口系統(tǒng)的通信接口與PC的RS232串口連接,。利用兩個串口同時接收GPS接收機(jī)和IMU數(shù)據(jù)幀,,存入相應(yīng)的數(shù)據(jù)緩存單元。接口系統(tǒng)DSP內(nèi)部驅(qū)動不斷檢測是否接收到一幀的GPS和IMU數(shù)據(jù),,若正確收到,,則利用上位機(jī)測試軟件顯示出來,并以數(shù)據(jù)文件的格式存儲下來,。試驗測試后,,打開數(shù)據(jù)文件,所設(shè)計的多路串行通信接口能完整地接收GPS和IMU數(shù)據(jù),。其測試結(jié)果如圖5所示,。試驗結(jié)果表明,雙路串行通信接口數(shù)據(jù)傳輸完整可靠,。
4 結(jié)論
本文對基于DSP的多路串行通信接口系統(tǒng)進(jìn)行了設(shè)計,,該系統(tǒng)硬件接口電路簡單,調(diào)試方便,。采用DSP的EMIF控制方式完成數(shù)據(jù)的傳輸,,通過異步通信協(xié)議芯片和譯碼器實現(xiàn)接口的集成與擴(kuò)展,解決了DSP內(nèi)部存儲器與外設(shè)之間數(shù)據(jù)傳輸?shù)乃俣葐栴},,減輕了DSP的運(yùn)算負(fù)荷,,提高了串行通行的實時性和可靠性。底層驅(qū)動基于SYS/BIOS實時操作系統(tǒng)設(shè)計開發(fā),,不但減小軟件開發(fā)難度,,而且可以保障系統(tǒng)的穩(wěn)定性,使得開發(fā)周期大大縮短,。通過試驗測試,,所設(shè)計的多路串行通信接口系統(tǒng)能夠接收多路數(shù)據(jù),數(shù)據(jù)傳輸完整可靠,,現(xiàn)已應(yīng)用于某預(yù)研項目中,,為其后續(xù)的開展提供了有力保障。
參考文獻(xiàn)
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設(shè)計[M].北京:北京航空航天大學(xué)出版社,,2008.
[2] 張曉峰,,李悅麗,黎向陽,,等.一種基于FPGA和SC16C554實現(xiàn)多串口通信的方法[J].電子技術(shù),,2009,46(6):34-36.
[3] 李海洋.基于DSP和FPGA的多功能嵌入式導(dǎo)航計算機(jī)系統(tǒng)設(shè)計[D].南京:南京航空航天大學(xué),,2003.
[4] 劉鳳新,,趙堅固.基于FPGA的多路并行獨(dú)立串口的實現(xiàn)[J].儀表技術(shù)與傳感器,,2010(11):44-46.
[5] 史曉鋒,李錚,,蔡志權(quán).基于DSP的高速數(shù)據(jù)采集與處理系統(tǒng)[J].電子技術(shù)應(yīng)用,,2001,,27(6):78-80.
[6] 喻少林,,韓波,李平.基于FPGA的飛控計算機(jī)多路串行通信設(shè)計[J].計算機(jī)工程,,2011,,37(20):242-245.
[7] 蔣艷紅.基于FPGA的UART設(shè)計與應(yīng)用[J].計算機(jī)工程,2008,,34(21):225-226.
作者信息:
楊慶國,,陳 軍,肖貴林
(湖南云箭集團(tuán)有限公司,,湖南 長沙410100)