TMS320VC33同步串行口和PC實(shí)現異步串行通信
摘 要:本文采用最簡(jiǎn)單的連接電路,進(jìn)行軟件模擬通用異步發(fā)送/接收器UART,實(shí)現TMS320VC33同步串行口和PC機RS-232C接口異步串行通信。
關(guān)鍵詞:串行通信;數據格式;PC;TMS320VC33
數字信號處理器DSP,由于其具有高速數字信號處理等特點(diǎn),在圖形圖像處理、高精度測量控制、高性能儀器儀表等眾多領(lǐng)域得到越來(lái)越廣泛的應用。實(shí)際應用中,往往把經(jīng)過(guò)DSP采集處理的信號或數據傳送給微機進(jìn)行存儲和進(jìn)一步處理,而外部設備和微機之間進(jìn)行數據傳送,常常通過(guò)微機的RS-232異步串行口進(jìn)行,實(shí)現起來(lái)接口設計容易,通信程序設計簡(jiǎn)單。目前,通過(guò)微機的RS-232串行口進(jìn)行通信最為簡(jiǎn)單且常用的是采用三線(xiàn)式接法,便可實(shí)現全雙工異步串行通信。但是,在一些常用的DSP芯片中,采用的通信是同步串行方式,其數據傳送格式和微機標準的RS-232數據幀格式不同,能否采用簡(jiǎn)便的方法,實(shí)現DSP的同步串行口和微機的異步串行通信。本文介紹了一種用軟件模擬通用異步發(fā)送/接收器UART,實(shí)現TMS320VC33通過(guò)RS-232串行口和微機通信的方法。
RS-232和TMS320VC33串行通信格式
在微機的RS-232接口中,由于沒(méi)有時(shí)鐘信號,所以數據按照設定的固定波特率傳送。通過(guò)微機的RS-232串行口進(jìn)行通信最為簡(jiǎn)單且常用的是采用三線(xiàn)式接法,即只需連接RX(數據接收)、TX(數據發(fā)送)、GND(地)三個(gè)引腳,便可實(shí)現全雙工異步串行通信。PC機按照幀格式發(fā)送/接收信號,一幀通常包括1位起始位(“0”電平)、5~8bits數據位、1位(或無(wú))校驗位和1位/1位半/2位停止位(“1”電平)。起始位表示數據傳送開(kāi)始,數據位是低位在先,停止位表示一幀結束。
按照RS-232標準通信,通信雙方的波特率設置和幀格式的設置應該一致,才能保證數據正確的傳送。
TMS320VC33是TI公司的高性能浮點(diǎn)DSP器件,它有1個(gè)雙向雙緩沖的同步串口,與串行通信直接有關(guān)的外部引腳有6個(gè)信號:串行接收時(shí)鐘(CLKR)、串行發(fā)送時(shí)鐘(CLKX)、接收幀同步(FSR)、發(fā)送幀同步(FSX)、串行數據接收(DR0)和串行數據發(fā)送(DT0)。串行口有8個(gè)內部存儲器映射的控制寄存器,每個(gè)寄存器都是32位。
TMS320VC33的串行通信的發(fā)送與接收方式有連續方式和暴發(fā)方式,連續方式是指在同步信號后,數據連續傳送,相鄰字之間無(wú)間隔,暴發(fā)方式是指每個(gè)字的傳輸由串行口無(wú)效周期隔開(kāi),每個(gè)字的傳送都由幀同步(FSX/FSR)信號開(kāi)始,后面是數據位。其固定傳輸率暴發(fā)方式的時(shí)序如圖1所示。
需要注意,TMS320VC33在暴發(fā)方式接收數據時(shí),從幀同步信號后開(kāi)始接收就不再考慮FSR信號,但在一幀信號的最后一位時(shí),FSR必須為低電平,否則就將會(huì )被作為下一幀的幀同步信號位,傳輸方式就變成了連續方式。和標準的RS-232串行通信格式不同的是,TMS320VC33的發(fā)送與接收,數據位可以選擇8、16、24和32位,一幀格式?jīng)]有起始位、校驗位和停止位,且數據位是高位在先。
TMS320VC33串口可以選擇內/外部時(shí)鐘,幀同步(FSX/FSR)信號也可以可以選擇內/外部信號實(shí)現,但是,接收幀同步(FSR)信號一般采用外同步。
實(shí)現TMS320VC33和PC串行通信的簡(jiǎn)易方法
由以上分析看出,TMS320VC33的串口和PC機的串口在數據格式以及傳送控制上有區別,但是通過(guò)軟件模擬以及簡(jiǎn)單的硬件控制,就可實(shí)現TMS320VC33與標準串口間的通信。
采用三線(xiàn)連接的硬件電路
實(shí)現PC和TMS320VC33串行通信的硬件電路如圖2所示。由于PC起始位為低電平,TMS320VC33幀同步位為高電平,為了使它們統一起來(lái),在DSP的發(fā)送/接收引腳都外接一個(gè)反相器的輸入/輸出端,當然,加了反相也會(huì )使數據相位和停止位都變反,但數據信號很容易用軟件方法使它還原。圖中的MAX232實(shí)現TTL邏輯電平和RS-232邏輯電平的轉換。
采用固定暴發(fā)方式通信及其軟件實(shí)現
在這種方式下,TMS320VC33的串行數據傳輸率不變,且等于PC機的波特率。根據雙方幀格式的特點(diǎn)以及軟件對數據位處理的方便,對PC和TMS320VC33串行通信的幀格式設計如下:
DSP接收PC發(fā)送時(shí),PC機:1位起始位、7位數據位、1位停止位;VC33:1位幀同步,8數據位(其中1位是PC的停止位)。
DSP發(fā)送PC接收時(shí),PC機:1位起始位、7位數據位、1位停止位;VC33:16位數據位(其中第1位作為起始位,第2-8位作為數據位,第9位作為停止位,第10-16位作為空閑位)。
以上幀格式傳送數據,有以下問(wèn)題需要處理。
�郵輾蕉越郵盞氖©據組裝變換。
環(huán)聰嗪螅�©好滿(mǎn)足對FSR的要求。
TMS320VC33和PC根據以上軟、硬件設計要求,實(shí)現串行通信數據處理的流程圖如圖3所示。該圖是在通信雙方按以上設計并對串行口初始化后,進(jìn)行TMS320VC33發(fā)送和PC機接收的數據處理過(guò)程,而PC發(fā)送和TMS320VC33接收也有幾乎類(lèi)似的處理。以TMS320VC33發(fā)送數據6EH為例,說(shuō)明處理流程。
TMS320VC33發(fā)送方:TMS320VC33要把6EH變成1011000000000000和1111000000000000兩個(gè)16位數據分2次發(fā)送,前一個(gè)數據是發(fā)送6H,后一個(gè)數據發(fā)送EH。在發(fā)送的數據前面加了1位“1”,作為PC的起始位,后面7位為數據位,再后面加8位“0”,作為PC的停止位和空閑位。
PC接收方:以中斷方式讀取數據。硬件對數據反相后傳過(guò)來(lái)的2幀數據是010011111111111和0000111111111111。PC串行口自動(dòng)去掉起始位、停止位和空閑位,并把數據位的高低位互換得到2個(gè)7位數據1111001和1111000。低4位是數據的有效位,把它們取出來(lái)組裝成10001001,取反后得到01110110,再對數據的高低位互換得到01101110,即6EH。
以上對發(fā)送/接收的數據進(jìn)行變換,用軟件實(shí)現是很容易的。之所以要把一個(gè)字節數據分成2個(gè)16位數據,主要是受到RS-232標準幀格式和“三線(xiàn)連接”通信方法的限制 。
結語(yǔ)
在工程設計中,采用上述方法實(shí)現PC和TMS320VC33串行通信,解決了相互之間通信格式不同的問(wèn)題,簡(jiǎn)單方便,切實(shí)可行,其基本思想也可供其它數據格式不同的串行通信參考。
參考文獻:
1. Texas Instruments Incorporated.TMS320C3X User's Guide. 2001.
評論