《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 高速DSP與PC實(shí)現(xiàn)串口通信的方法[圖]
高速DSP與PC實(shí)現(xiàn)串口通信的方法[圖]
摘要: 數(shù)字信號(hào)處理器(Digital Signal Processor,,DSP)在圖形圖像處理,、高精度測(cè)量控制、高性能儀器儀表等眾多領(lǐng)域得到越來(lái)越廣泛的應(yīng)用,,實(shí)際運(yùn)用中,通常須將DSP采集處理后的數(shù)據(jù)傳送到PC機(jī),,然后進(jìn)行存儲(chǔ)和處理,。
Abstract:
Key words :
數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)在圖形圖像處理,、高精度測(cè)量控制、高性能儀器儀表等眾多領(lǐng)域得到越來(lái)越廣泛的應(yīng)用,,實(shí)際運(yùn)用中,,通常須將DSP采集處理后的數(shù)據(jù)傳送到PC機(jī),然后進(jìn)行存儲(chǔ)和處理,。

T1公司的TMS320VC33微處理器具有性價(jià)比高,,同時(shí),該芯片的I/O電平,、字長(zhǎng),、運(yùn)行速度、串口功能具有大多數(shù)DSP的共同特點(diǎn),。本文針對(duì)TMS320VC33與PC RS-232的通訊,,分析三種具體的接口電路和軟件設(shè)計(jì)方法,實(shí)現(xiàn)高速DSP與低速設(shè)備的通訊:①通過(guò)TMS320VC33的通用I/O口實(shí)現(xiàn)通信,;②通過(guò)TMS320VC33中可設(shè)置為通用I/O的串行引腳實(shí)現(xiàn)通信,;③直接利用TMS320VC33的串口功能實(shí)現(xiàn)通信,在硬件和軟件設(shè)計(jì)的基礎(chǔ)上,,完成相關(guān)試驗(yàn)和調(diào)試,,并達(dá)到預(yù)期的效果。

采用通用I/O口實(shí)現(xiàn)

PC的RS-232接口按照設(shè)定的固定波特率傳送,,RS-232串行口進(jìn)行通信采用三線式接法,,即RX(數(shù)據(jù)接收)、TX(數(shù)據(jù)發(fā)送),、GND(地)三個(gè)引腳,,PC機(jī)按幀格式發(fā)送、接收數(shù)據(jù),,一幀通常包括1位起始位("0"電平),、5-8位數(shù)據(jù)位、1位(或無(wú))校驗(yàn)位,、1位或1位半停止位("1"電平),,起始位表示數(shù)據(jù)傳送開(kāi)始,數(shù)據(jù)位為低位在前,、高位在后,,停止位表示一幀數(shù)據(jù)結(jié)束。

TMS320VC33微處理器的串口幀格式?jīng)]有起始位和停止位,只有數(shù)據(jù)位,,且數(shù)據(jù)位為高位在前,、低位在后。利用TMS320VC33微處理器的通用I/O引腳實(shí)現(xiàn)串行通信時(shí),,須依據(jù)RS232的通信協(xié)議并結(jié)合DSP硬件資源編寫相應(yīng)的DSP程序,。

1.硬件設(shè)計(jì)

TMS320VC33微處理器共有10個(gè)引腳可配置為通用I/O口,其中XFO,、XFl為專用的通用I/O口,,通過(guò)軟件設(shè)計(jì)可實(shí)現(xiàn)XFO、XFl專用I/O口與RS232的串行通信,,電路結(jié)構(gòu)如圖1所示,。

高速DSP與PC實(shí)現(xiàn)<a class=串口通信的方法" src="http://files.chinaaet.com/images/20110609/0ecefcc5-2a6d-4f1f-8fd0-c6933870cf8b.jpg" />

本文選用MAX3232E作為RS232C電平與TTL電平的轉(zhuǎn)換芯片,R1in,、T1out為RS232C電平,,R1out、T1in為TTL電平,,TMS320VC33微處理器的INT2引腳為外部中斷腳,,R10ut同時(shí)連接到INT2和XF0,即可利用傳輸?shù)牡谝晃挥|發(fā)TMS320VC33微處理器的外部中斷,。

2.軟件設(shè)計(jì)

假設(shè)系統(tǒng)已經(jīng)完成初始化,,數(shù)據(jù)接收流程如圖2所示,設(shè)傳輸速率為9600bit/s,,一個(gè)起始位("0"),、8位數(shù)據(jù)位、一個(gè)終止位("1"),。數(shù)據(jù)傳輸時(shí)對(duì)起始位定時(shí)半位的時(shí)間,,數(shù)據(jù)位第一位以后的定時(shí)周期設(shè)置為一個(gè)位的時(shí)間,保證每一位數(shù)據(jù)都在中間采樣,,與傳統(tǒng)RS232串口傳輸方式不同,,有利于降低傳輸?shù)恼`碼率。

高速DSP與PC實(shí)現(xiàn)串口通信的方法

數(shù)據(jù)傳輸時(shí),,先判斷Rx是否為OAh,,即判斷是不是傳輸起始位,若Rx=OAh,,表明數(shù)據(jù)開(kāi)始傳輸,;接著判斷XF0管腳的狀態(tài)是否為"O",若XF0=1,,則數(shù)據(jù)傳輸錯(cuò)誤,,重新接收下一個(gè)數(shù)據(jù),;若XF=0,則表示數(shù)據(jù)開(kāi)始正常傳輸,;然后將Rx-1,,同步刷新Rx中的內(nèi)容,即Rx=Rx-1,;同時(shí),,在TIMER0的周期寄存器和計(jì)數(shù)寄存器中存入定時(shí)整個(gè)位的時(shí)間常數(shù),開(kāi)定時(shí)器0的中斷,,定時(shí)時(shí)間一到,,程序進(jìn)入TIMER0的中斷服務(wù)子程序,再判斷Rx是不是終止位,,若Rx為終止位,則開(kāi)始繼續(xù)接收新的數(shù)據(jù),,打開(kāi)INT2,,將TIMER0周期寄存器和計(jì)數(shù)寄存器中存放半位的時(shí)間參數(shù);若Rx不是終止位,,則繼續(xù)接收數(shù)據(jù)位,,直到Rx接收到終止位。

數(shù)據(jù)發(fā)送程序與數(shù)據(jù)接收程序原理相同,,此處略,。

串口引腳作為通用I/O口實(shí)現(xiàn)

1.硬件設(shè)計(jì)

TMS320VC33微處理器的串口引腳也可作為通用I/O口,通過(guò)對(duì)I/0口的操作即可實(shí)現(xiàn)串行數(shù)據(jù)的接收和發(fā)送,,將微處理器的數(shù)據(jù)接收引腳DR作為RS232的數(shù)據(jù)接收端,,數(shù)據(jù)發(fā)送引腳DX作為RS232的數(shù)據(jù)發(fā)送端,電路結(jié)構(gòu)如圖3所示,,圖中MAX3232E的R2out與TMS320VC33微處理器的lNT1和DR相連,。

高速DSP與PC實(shí)現(xiàn)串口通信的方法

2.軟件設(shè)計(jì)

軟件設(shè)計(jì)與I/O口軟件原理相似,TMS320VC33微處理器串口寄存器將串口功能引腳DR,、DX設(shè)置為通用I/O口功能,,不實(shí)施串口功能,即DR,、DX引腳的功能與圖1中XF0和XF1的功能相同,,接收數(shù)據(jù)的流程與圖2原理相同。

需要說(shuō)明兩點(diǎn):①將圖1和圖3硬件電路相組合,,即可實(shí)現(xiàn)一片TMS320VC33微處理器與兩臺(tái)微機(jī)的同時(shí)通信,;②TMS320VC33微處理器共有10個(gè)引腳可配置為通用I/O口,因此,,利用TMS320VC33微處理器的內(nèi)部和外部中斷源,、2個(gè)定時(shí)器,、1個(gè)串口定時(shí)器和軟件定時(shí)等方式,可巧妙地實(shí)現(xiàn)1片TMS320VC33微處理器與多臺(tái)微機(jī)同時(shí)通信,。

串口功能實(shí)現(xiàn)

該方法直接利用TMS320VC33微處理器的串口功能實(shí)現(xiàn)通信,。TMS320VC33微處理器的串行通信有固定數(shù)據(jù)速率和可變數(shù)據(jù)速率兩種類型,每種類型又分連續(xù),、標(biāo)準(zhǔn)和爆發(fā)三種方式,。

1.硬件設(shè)計(jì)

本文與RS232接口的通信方式采用固定速率的爆發(fā)方式,在該方式下,,每個(gè)字的傳送都由幀同步(FSX/FSR)信號(hào)開(kāi)始,,后面開(kāi)始為數(shù)據(jù)位,其時(shí)序如圖4所示,。TMS320VC33微處理器在爆發(fā)方式接收數(shù)據(jù)時(shí),,從幀同步信號(hào)后開(kāi)始接收數(shù)據(jù),并不再考慮FSR信號(hào),,在一幀信號(hào)傳輸?shù)淖詈笠晃粫r(shí),,F(xiàn)SR必須為低電平,否則將會(huì)被作為下一幀的幀同步信號(hào)位,。

高速DSP與PC實(shí)現(xiàn)串口通信的方法

TMS320VC33微處理器與標(biāo)準(zhǔn)串口間的通信硬件結(jié)構(gòu)如圖5所示,,同樣采用三線連接的電路。因PC起始位為低電平,,TMS320VC33微處理器幀同步位為高電平,,為使兩者統(tǒng)一,MAX3232E的R10ut信號(hào)經(jīng)一反相器后,,再連接到DSP的DR和FSR引腳,,同時(shí)加反相器后,數(shù)據(jù)相位和停止位都相應(yīng)變反,,但是很容易用軟件方法還原數(shù)據(jù)信號(hào),。

高速DSP與PC實(shí)現(xiàn)串口通信的方法

2.軟件設(shè)計(jì)

軟件設(shè)計(jì)比前兩種方法更為簡(jiǎn)單,只需將串口的相應(yīng)寄存器位設(shè)置好,,然后開(kāi)啟相應(yīng)中斷即可完成與PC的通信,,此方法在接收時(shí)采用幀同步信號(hào),誤碼率較低,,是一種比較實(shí)用的方法,。

①在DSP接收時(shí),接收信號(hào)同時(shí)連接到接收引腳DR和接收幀同步引腳FSR,,故PC發(fā)送1幀信號(hào)的起始位是被用作接收幀同步信號(hào),,然后才開(kāi)始接收數(shù)據(jù),而且FSR引腳在接收幀的最后一位時(shí)必須為低電平,,以滿足TMS320VC33微處理器爆發(fā)方式串行通信的要求,。PC采用上述發(fā)送幀格式,,停止位反相后,正好滿足FSR的要求,。

②在DSP發(fā)送時(shí),,TMS320VC33微處理器的字長(zhǎng)只能是8、16,、24或32位,,且不需要起始位、結(jié)束位,;RS232的字長(zhǎng)只能是8位,,且需要起始位和結(jié)束位。由圖5知,,TMS320VC33微處理器的FSX采用內(nèi)部同步,,DX引腳上為數(shù)據(jù)位,為符合PC接收的幀格式,,需將數(shù)據(jù)位設(shè)置為16位,,將最高位作為起始位、8位數(shù)據(jù)位,、1位停止位,、6位空閑位,,即符合PC幀格式為10位的通信要求,,同時(shí)空閑位不影響數(shù)據(jù)通信,同時(shí)也正是由于有空閑位,,所以采用固定速率的爆發(fā)方式,。

結(jié)論

本文的TMS320VC33微處理器與PC實(shí)現(xiàn)串口通信的方法可以為其它型號(hào)的高速DSP與PC之間實(shí)現(xiàn)通信提供參考。

另外,,將MAX3232E芯片換成MAX485可實(shí)現(xiàn)DSP與RS-485接口的通信,,即提高了數(shù)據(jù)傳輸速率,增加了傳輸距離,,同時(shí),,增強(qiáng)了數(shù)據(jù)傳輸中抗干擾能力,對(duì)復(fù)雜環(huán)境的數(shù)據(jù)傳輸通訊有重要的應(yīng)用意義,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。