新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 高速DSP與PC實現串口通信的方法

        高速DSP與PC實現串口通信的方法

        ——
        作者: 時間:2007-10-22 來源:電子世界 收藏

          數字信號處理器(Digital Signal Processor,)在圖形圖像處理、高精度測量控制、高性能儀器儀表等眾多領域得到越來越廣泛的應用,實際運用中,通常須將采集處理后的數據傳送到機,然后進行存儲和處理。

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

          采用通用I/O口實現

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

          TMS320VC33微處理器的串口幀格式沒有起始位和停止位,只有數據位,且數據位為高位在前、低位在后。利用TMS320VC33微處理器的通用I/O引腳實現串行通信時,須依據RS232的通信協議并結合DSP硬件資源編寫相應的DSP程序。

          1.硬件設計

          TMS320VC33微處理器共有10個引腳可配置為通用I/O口,其中XFO、XFl為專用的通用I/O口,通過軟件設計可實現XFO、XFl專用I/O口與RS232的串行通信,電路結構如圖1所示。

          

          本文選用MAX3232E作為RS232C電平與TTL電平的轉換芯片,R1in、T1out為RS232C電平,R1out、T1in為TTL電平,TMS320VC33微處理器的INT2引腳為外部中斷腳,R10ut同時連接到INT2和XF0,即可利用傳輸的第一位觸發TMS320VC33微處理器的外部中斷。

          2.軟件設計

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

          

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

          數據發送程序與數據接收程序原理相同,此處略。

          串口引腳作為通用I/O口實現

          1.硬件設計

          TMS320VC33微處理器的串口引腳也可作為通用I/O口,通過對I/0口的操作即可實現串行數據的接收和發送,將微處理器的數據接收引腳DR作為RS232的數據接收端,數據發送引腳DX作為RS232的數據發送端,電路結構如圖3所示,圖中MAX3232E的R2out與TMS320VC33微處理器的lNT1和DR相連。

          

          

          2.軟件設計

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

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

          串口功能實現 該方法直接利用TMS320VC33微處理器的串口功能實現通信。TMS320VC33微處理器的串行通信有固定數據速率和可變數據速率兩種類型,每種類型又分連續、標準和爆發三種方式。

          1.硬件設計

          本文與RS232接口的通信方式采用固定速率的爆發方式,在該方式下,每個字的傳送都由幀同步(FSX/FSR)信號開始,后面開始為數據位,其時序如圖4所示。TMS320VC33微處理器在爆發方式接收數據時,從幀同步信號后開始接收數據,并不再考慮FSR信號,在一幀信號傳輸的最后一位時,FSR必須為低電平,否則將會被作為下一幀的幀同步信號位。

          TMS320VC33微處理器與標準串口間的通信硬件結構如圖5所示,同樣采用三線連接的電路。因PC起始位為低電平,TMS320VC33微處理器幀同步位為高電平,為使兩者統一,MAX3232E的R10ut信號經一反相器后,再連接到DSP的DR和FSR引腳,同時加反相器后,數據相位和停止位都相應變反,但是很容易用軟件方法還原數據信號。

          2.軟件設計

          軟件設計比前兩種方法更為簡單,只需將串口的相應寄存器位設置好,然后開啟相應中斷即可完成與PC的通信,此方法在接收時采用幀同步信號,誤碼率較低,是一種比較實用的方法。

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

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

          

          結論

          本文的TMS320VC33微處理器與PC實現的方法可以為其它型號的高速DSP與PC之間實現通信提供參考。

          另外,將MAX3232E芯片換成MAX485可實現DSP與RS-485接口的通信,即提高了數據傳輸速率,增加了傳輸距離,同時,增強了數據傳輸中抗干擾能力,對復雜環境的數據傳輸通訊有重要的應用意義。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长武县| 涞源县| 方城县| 乐至县| 长岭县| 龙井市| 黑水县| 卢湾区| 巴塘县| 九龙城区| 富阳市| 河池市| 洛扎县| SHOW| 宝应县| 鹤壁市| 荥阳市| 莱州市| 宁海县| 鄂温| 哈巴河县| 白银市| 工布江达县| 河池市| 海伦市| 冀州市| 邛崃市| 惠安县| 漳浦县| 奎屯市| 江陵县| 安远县| 攀枝花市| 葫芦岛市| 息烽县| 江达县| 大名县| 阿城市| 连云港市| 云和县| 龙山县|