文獻標識碼: 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è)備進行數(shù)據(jù)交互和通信[3],其中串行通信接口因其簡單可靠,仍是目前廣泛采用的技術(shù)[4],而當前的DSP的串口較少,滿足不了多路串行通信接口能力。
本文采用高速浮點處理器DSP作為嵌入式飛行控制系統(tǒng)的核心處理芯片,可實時地完成系統(tǒng)運算和控制,充分發(fā)揮DSP在數(shù)字信號處理方面的技術(shù)優(yōu)勢[5]。設(shè)計了一種基于TMS320C6748的多路串行通信接口電路,采用異步通信協(xié)議芯片TL16C754和3-8譯碼器74LS138實現(xiàn)多路串行通信接口的集成與擴展,底層驅(qū)動基于TI的實時操作系統(tǒng)內(nèi)核SYS/BIOS進行開發(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的浮點運算低功耗芯片TMS320C6748,其主頻為456 MHz,具有高達3 648 MIPS和2 756 MFLOPS的運算能力。
時鐘電路采用時鐘信號為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ù)位芯片進行設(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芯片,可進行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用于擴展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ù)接口標準系統(tǒng)中[7],內(nèi)部有驅(qū)動和接收兩個模塊,最大傳輸速率為2.5 Mb/s。
在硬件設(shè)計中,采用EMIF接口8位數(shù)據(jù)線與TL16C754端口一一對應(yīng),保證DSP與外部設(shè)備的正常通信,當外部數(shù)據(jù)發(fā)送過來,會觸發(fā)DSP的外部中斷。在譯碼器電路中,通過3個地址信號產(chǎn)生8路不同的片選信號,當譯碼器產(chǎn)生一路選通,對應(yīng)的并行數(shù)據(jù)就會傳輸?shù)娇偩€上,等待接收,接口電路原理圖如圖2所示。
2 驅(qū)動軟件實現(xiàn)
DSP驅(qū)動軟件是基于TI的SYS/BIOS操作系統(tǒng)進行設(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)存儲器中開始運行。
首先,執(zhí)行對設(shè)備的CPU初始化,運行cinit初始化運行環(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可獨立控制芯片某一部分的供電,可以最大限度地降低功耗。
(2)GPIO中斷配置。TMS320C6748沒有獨立的外部中斷引腳,是通過配置GPIO作為中斷源信號,在配置中斷時應(yīng)注意配置中斷的方向和觸發(fā)方式。
(3)時序控制。通過配置CE4CFG寄存器對CE4空間的讀寫操作進行控制。CE4CFG可以控制建立、選通、保持時間和數(shù)據(jù)寬度。本文將UART擴展在EMIFA的CE4空間商,CE4擴展空間的基地址為0x64000000,對UART進行讀寫操作時,對0x64000000地址進行操作即可。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 單路串行接口測試
隨機選取一路串口進行試驗測試。首先,將接口系統(tǒng)的通信接口與PC的RS232串口相連,PC按指定的配置參數(shù)啟動串口通信,利用上位機測試軟件,向接口系統(tǒng)發(fā)送數(shù)據(jù)。該接口系統(tǒng)采用中斷方式對串口數(shù)據(jù)進行接收,數(shù)據(jù)接收完整后,接口系統(tǒng)會將數(shù)據(jù)轉(zhuǎn)發(fā)出來,PC收到后將其與原始數(shù)據(jù)比較,檢驗是否一致,若一致,上位機測試軟件顯示串口測試成功,其測試結(jié)果如圖4所示。試驗結(jié)果表明,單路串行通信接口數(shù)據(jù)傳輸完整可靠。
3.2 雙路串行接口測試
現(xiàn)場測試時,隨機選取接口系統(tǒng)的兩路RS422串口與外部的GPS接收機和IMU的串口連接,接口系統(tǒng)的通信接口與PC的RS232串口連接。利用兩個串口同時接收GPS接收機和IMU數(shù)據(jù)幀,存入相應(yīng)的數(shù)據(jù)緩存單元。接口系統(tǒng)DSP內(nèi)部驅(qū)動不斷檢測是否接收到一幀的GPS和IMU數(shù)據(jù),若正確收到,則利用上位機測試軟件顯示出來,并以數(shù)據(jù)文件的格式存儲下來。試驗測試后,打開數(shù)據(jù)文件,所設(shè)計的多路串行通信接口能完整地接收GPS和IMU數(shù)據(jù)。其測試結(jié)果如圖5所示。試驗結(jié)果表明,雙路串行通信接口數(shù)據(jù)傳輸完整可靠。
4 結(jié)論
本文對基于DSP的多路串行通信接口系統(tǒng)進行了設(shè)計,該系統(tǒng)硬件接口電路簡單,調(diào)試方便。采用DSP的EMIF控制方式完成數(shù)據(jù)的傳輸,通過異步通信協(xié)議芯片和譯碼器實現(xiàn)接口的集成與擴展,解決了DSP內(nèi)部存儲器與外設(shè)之間數(shù)據(jù)傳輸?shù)乃俣葐栴},減輕了DSP的運算負荷,提高了串行通行的實時性和可靠性。底層驅(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ù)的開展提供了有力保障。
參考文獻
[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)航計算機系統(tǒng)設(shè)計[D].南京:南京航空航天大學(xué),2003.
[4] 劉鳳新,趙堅固.基于FPGA的多路并行獨立串口的實現(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的飛控計算機多路串行通信設(shè)計[J].計算機工程,2011,37(20):242-245.
[7] 蔣艷紅.基于FPGA的UART設(shè)計與應(yīng)用[J].計算機工程,2008,34(21):225-226.
作者信息:
楊慶國,陳 軍,肖貴林
(湖南云箭集團有限公司,湖南 長沙410100)