<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > TMS320VC5402和PC機的UART研究與設計

TMS320VC5402和PC機的UART研究與設計

——
作者:李勛龍 宋仲康 時(shí)間:2007-01-26 來(lái)源:《中國測控網(wǎng)》 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/21221.htm

tms320vc5402以其低成本、低功耗、資源多的特點(diǎn)在通信、控制領(lǐng)域得到了廣泛的應用。片上集成了最大192kb存儲空間(64kb ram、64kb rom、64kb i/o),具有時(shí)分多路串口tmd,2個(gè)緩沖串口bsp、8位并行主機接口hpi、可編程等待狀態(tài)發(fā)生器等,完全可以滿(mǎn)足數據處理及控制要求?;? 5402構建的應用系統中必不可少的是各種數據通信接口的設計。與并口相比,串行接口的特點(diǎn)是減少器件引腳數目,節省了硬件系統的體積,降低了接口設計的復雜性。實(shí)際應用中,各系統之間需要實(shí)現異步串行數據傳輸和通信,而dsp5402具有同步串口,與標準的異步串行接口不同,本文針對這種應用,設計實(shí)現了dsp5402和pc機的異步串行通信。

2 串行通信和dsp5402串口

在工業(yè)控制和實(shí)際應用中,串行通信的應用已非常普遍,圖1示出常見(jiàn)的三種232通信方式,在此筆者選用短距離有線(xiàn)傳輸方式。目前,大多數pc機的串口采用 rs-232標準,該標準規定采用一個(gè)25腳的db25連接器,實(shí)際上rs-232的25條引線(xiàn)有許多是很少用的,所以目前較為常用的串口有9針和25 針,在普通電路設計中最為簡(jiǎn)單且常用的是三線(xiàn)制接法,即在通信中不需要rs-232的控制聯(lián)絡(luò )信號,采用發(fā)送數據(txd)、接收數據(rxd)、地 (gnd)三腳相連,便可實(shí)現全雙工異步串行通信,本文即采用此法實(shí)現pc與dsp的串行通信。


圖1 三種rs-232通信方式
由于rs-232中沒(méi)有時(shí)鐘信號,所以按照設定的固定波特率傳送。在一信號中包括開(kāi)始位、停止位和數據位,校驗位可以選擇。其中數據位為5-8bits,奇偶校驗位共有5種方式可選:奇校驗、偶校驗、始終為1、始終為0以及空;停止位也有三種選擇:1位、11/2位以及2位。串口傳數時(shí)低位優(yōu)先,由開(kāi)始位表示數據傳輸。

dsp5402有2個(gè)多緩沖的同步串口,通過(guò)幀信號來(lái)控制數據流。每一個(gè)串口有6個(gè)信號:clkr/x:接收、發(fā)送時(shí)鐘信號,dr/dx:接收、發(fā)送串行數據信號,fsr/fsx:接收、發(fā)送幀同步信號;串行接口有5個(gè)寄存器:數據接收寄存器(drr)、數據發(fā)送寄存器(dxr)、串行接口控制寄存器 (spc)、數據接收移位寄存器(rsr)、數據發(fā)送移位寄存器(xsr),其中3個(gè)存儲器映射寄存器(spc、dxr和drr)和2個(gè)程序不能直接訪(fǎng)問(wèn)的寄存器(rsr和xsr)來(lái)操作,rsr和xsr在執行雙緩沖功能時(shí)很有用。發(fā)送數據寫(xiě)到dxr中,而接收數據從drr中讀取。其各寄存器配置及控制請參考文獻[2]。

3 dsp和pc機串口通信的軟硬件實(shí)現

3.1 dsp和pc機uart硬件連接

由上所述,pc機的異步串口和dsp5402的同步串口在數據格式以及傳送控制上有區別,但是通過(guò)必要的硬件控制和軟件模擬就可實(shí)現dsp5402與標準串口間的通信。dsp5402和pc機的uart實(shí)現主要有二種硬件方法和二種軟件模擬方法。硬件方法如下:基于max3100的同步轉異步實(shí)現和利用 dsp5402 i/o模擬時(shí)序法。

max3110e內部集成了全功能uart和內置電泵電容以及土15kv esd保護的rs-232收發(fā)器。其中,uart部分采用兼容spitm/qspitm/microwiretm的串行接口,因而可節省線(xiàn)路板空間和微控制器的i/0引腳。由于rs-232部分使用了特有的低壓差輸出級,從而使雙接收/發(fā)送接口能夠在高速通信、正常電源下提供真正的rs-232特性,而功耗僅600μa。通過(guò)max3110e可實(shí)現同步串行數據接口到異步串行通信口(rs-232)的轉換,它可直接與pc機的串行口(com)相連。 max3110e具有尺寸小,價(jià)格低,功耗少,通信速率高等特點(diǎn),因此有著(zhù)較好的應用前景。max3110e包括uart與rs-232兩個(gè)獨立的部分。其中,uart部分包括兼容于spi的串行接口、可編程波特率發(fā)生器、發(fā)送緩沖器及發(fā)送移位寄存器、接收緩沖器及接收移位寄存器、8字節接收f(shuō)ifo以及有四種可屏蔽中斷源的中斷產(chǎn)生器。而rs-232部分包括自帶電容的電泵,以及可由shdn對其進(jìn)行硬件關(guān)斷的。

max3110e通過(guò)spi接口與dsp5402進(jìn)行16位數據的全雙工通信。dsp5402通過(guò)bdx線(xiàn)向max3110發(fā)送的16位串行數據序列中包括傳輸格式控制字,如波特率設置、中斷屏蔽、奇偶校驗位等。dsp5402的mcbsp串行接口工作于spi模式時(shí)可直接與max3110進(jìn)行連接。 dsp5402的bdx1與max3110的din連接作為發(fā)送數據線(xiàn),bdr1與dout連接作為接收數據線(xiàn),發(fā)送同步脈沖信號bfsx1作為片選信號,發(fā)送時(shí)鐘信號bclkx1作為max3110的串行時(shí)鐘輸入,硬件接口圖如圖2所示:


圖2 dsp5402和max3110硬件接口圖 同時(shí)必須根據時(shí)序設置dsp5402的mcbsp寄存器,此種uart方式才得以實(shí)現,時(shí)序圖如圖3所示:

圖3 max3110和dsp5402配合時(shí)序 利用dsp5402 i/o模擬時(shí)序法分析如下:用定時(shí)器中斷來(lái)處理數據,用i/o口來(lái)配置作為輸入輸出,由于dsp5402單獨i/o引腳較少,節省資源,這里使用dsp5402的標志位引腳xf和配合軟件得到實(shí)現,硬件原理圖如圖4所示:

圖4 硬件原理圖
3.2 dsp和pc機uart軟件實(shí)現

對于基于max3100的同步轉異步實(shí)現dsp5402編程如下:

stm spcr11,spsa1 ; 配置spcr11
stm #1800h,mcbsp1
stm spcr21,spsa1 ; 配置spcr21
stm #0000h,mcbsp1
stm pcr1, spsa1 ; 配置pcr1
stm #0a0ch,mcbsp1
stm rcr11,spsa1 ; 配置rcr11
stm #0040h,mcbsp1
… … ; 配置rcr21
stm xcr11,spsa1 ; 配置xcr11
stm #0040h,mcbsp1
… … ; 配置xcr21
stm srgr11,spsa1 ; 配置srgr11
stm #0027h,mcbsp1
… … ; 配置srgr21
rpt #20 ; 等待2個(gè)clksrg時(shí)鐘周期
nop
stm spcr21,spsa1 ; 配置spcr21
stm #0040h,mcbsp1
; 啟動(dòng)mcbsp1采樣率發(fā)生器
rpt #20 ; 等待2個(gè)clkg時(shí)鐘周期
nop
stm spcr11,spsa1
stm #1801h,mcbsp1 ; 啟動(dòng)接收
stm spcr21,spsa1 ; 配置spcr21
stm #0041h,mcbsp1 ; 啟動(dòng)mcbsp1發(fā)送端
stm spcr21,spsa1 ; 配置spcr21
stm #00c1h,mcbsp1 ; 啟動(dòng)幀同步脈沖
rpt #80 ; 等待8個(gè)clkg時(shí)鐘周期
nop
ld #0h,a
stm #0c042h,dxr11
; 配置max3110,2個(gè)停止位

配置完成即可發(fā)送數據,接收程序只需依據模式配置相應的接收寄存器。圖5示出測試界面。


圖5 串口調試助手測試界面 對于i/o模擬方式軟件編程可以通過(guò)定時(shí)器中斷來(lái)設置通信波特率,對于dsp5402定時(shí)需設置tim0、prd0、tcr0三個(gè)寄存器,

定時(shí)時(shí)間=tx(1+tddr)x(1+prd)。

同時(shí)還可以通過(guò)軟件延時(shí)來(lái)設置通信波特率,方法如下:

delay: stm #1004h,ar6 ;通信速率:1200bps
banz $,*ar6-
nop
ret

其軟件模擬程序如圖6所示。

二種軟件模擬在pc機上均需運用串口調試助手測試,作者實(shí)現測試界面如圖6,為了滿(mǎn)足實(shí)際應用需要,可以運用vc編寫(xiě)自己的軟件。


圖6 軟件模擬程序
4 結束語(yǔ)

主要討論了tms320vc5402和pc之間實(shí)現uart的方法,利用同步串口實(shí)現簡(jiǎn)單、易行、穩定; 利用軟件模擬不需專(zhuān)用硬件,靈活、方便、成本低,各自滿(mǎn)足自己的需求,二種方法均已測試通過(guò),此思想對研究dsp5402和串口有一定的參考價(jià)值。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>