<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è) > 嵌入式系統 > 設計應用 > 雙異步串口經(jīng)AT89C2051與TMS320VC5402HPI口通信的解決方案

雙異步串口經(jīng)AT89C2051與TMS320VC5402HPI口通信的解決方案

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:提出了兩個(gè)微機串口與處理器(TMS320VC5402)HPI(Host Port Interface)口通信問(wèn)題的解決方案,該方案采用單片機(AT89C2051)實(shí)現數據的串/并、并/串轉換,并控制的HPI實(shí)現共享總線(xiàn)。給出了硬件連接電路和用FPGA作為總線(xiàn)仲裁器的設計思路,介紹HPI口的操作過(guò)程,單片機與微機串口之間通信的硬件設計方法。

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

關(guān)鍵詞: 單片機 HPI 串行通信 FPGA

本文所介紹的是我所正在研制的衛星CDMA接收機未端DSP與微機串口通信的接口電路。由于CDMA接收機支持兩個(gè)獨立CDMA信道的接收,并將兩路解調后的數據分別經(jīng)串口送至不同的計算機做后續的處理,故接收機需要帶兩個(gè)RS232接口。

微機的異步串口與DSP處理器通信的方法通常有三種,第一種方法是采用異步通信芯片擴展串口,如用TI公司的TL16C550完成數據的串/并、并/串變換。由地TL16C550提供了豐富的控制管腳和應答信號,對其只需設置一些寄存器就可以進(jìn)行靈活的控制,故編程比較簡(jiǎn)單,但對其數據的讀取或寫(xiě)入則需要用到DSP的數據總線(xiàn)。第二種方法是將DSP的I/O口XF和BIO,或者將DSP的McBSP口用軟件模擬成異步串口。用這種方法,雖然DSP與微機串口之間無(wú)需串/并變換器件,硬件構成十分簡(jiǎn)單,但DSP的編程比較復雜,用I/O口線(xiàn)模擬串口需要占用兩個(gè)定時(shí)器資源,并且只有在DSP操作不繁忙的情況下這種方法才可行。第三種方法是用單片機實(shí)現數據的串/并、并/串轉換。與第一種方法相比較,這種方法增加了對單片機的編程,但單片機可以作為控制器操作DSP的HPI口,對DSP存儲器的數據上發(fā)可完全由單片機發(fā)起,DSP幾乎無(wú)需作任何操作,也無(wú)需用到數據總線(xiàn)。在DSP處理過(guò)程復雜、運算量大的情況下,這種方法特別有用。

在本系統中,我們采用的DSP處理器是高性能、低功耗的TMS320VC5402,用以實(shí)現系統的MAC層控制和數據的編、解碼工作,處理器的工作量很大。另外DSP數據總線(xiàn)需要與作為基帶處理器的FPGA芯片(APEGEP20K600E)交換數據,為避免引入額外的控制邏輯實(shí)現與數據總線(xiàn)復用,采有單片機控制HPI口的方法實(shí)現DSP與雙串口的通信??紤]到FPGA芯片的存在及節省成本,沒(méi)有采用價(jià)格貴且需用高級仿真器開(kāi)發(fā)的雙串口單片機(如DS80C320),而是采用兩片AT89C2051,并借用物理層FPGA的冗長(cháng)資源作為總線(xiàn)仲裁器來(lái)實(shí)現同樣的功能。

1 TMS320VC5402 HPI口結構

TMS320VC5402上的HPI口是增強型的8bit主機接口(Enhanced 8 bit host port interface),專(zhuān)門(mén)用于與主機進(jìn)行通信,通過(guò)它主機可以訪(fǎng)問(wèn)TMS320VC5402片仙16K的RAM空間。這一接口由一個(gè)8bit的雙向數據總線(xiàn)和不同的控制管腳組成,能夠支持按高、低字節傳送16bit數據。TMS320VC5402提供三個(gè)跟HPI操作相關(guān)的寄存器--地址寄存器HPIA、數據寄存器HPID和控制寄存器HPIC。TMS320VC5402只能訪(fǎng)問(wèn)控制寄存器,而主機則對這三個(gè)寄存器都可以訪(fǎng)問(wèn)。主機欲隨機訪(fǎng)問(wèn)TMS320VC5402的片內RAM,需要先發(fā)送一個(gè)16bit地址到HPI地址寄存器(HPIA),然后通過(guò)數據寄存器(HPID)訪(fǎng)問(wèn)該地址所指向的存儲單元。主機欲連續訪(fǎng)問(wèn)一段RAM空間,則要先送該段的自地址到HPIA,然后以地址自動(dòng)加一的方式訪(fǎng)問(wèn),即主機每訪(fǎng)問(wèn)一個(gè)存儲單元后HPIA自動(dòng)指向下一個(gè)單元。

HPI接口還提供了中斷邏輯同主機進(jìn)行軟件握手。主機可通過(guò)對控制寄存器HPIC的第二位(DSPINT)置1中斷DSP芯片;DSP芯片可通過(guò)對HPIC的第三位(HINT)置1中斷主機,此時(shí)HPI的引腳HINT被置為低電平,從而向主機發(fā)出中斷請求;主機還可設置HPIC的位HINT為1使HINT腳回到高電平,從而清除中斷信號。

下面給出HPI口相關(guān)管腳說(shuō)明:

HD0~HD7是8位雙向數據線(xiàn),與單片機P1口相連,用于交換數據。

HCNTL1/0的組合用于選擇主機所訪(fǎng)問(wèn)的HPI寄存器,00表明主機訪(fǎng)問(wèn)HPIC;10表明訪(fǎng)問(wèn)HPIA;01和11均表明訪(fǎng)問(wèn)HPID,但01還表明同時(shí)啟用HPIA自動(dòng)增長(cháng)的功能。

16bit數據傳送時(shí),HBIL為0表示傳送的是第一字節,為1表明傳送的第二字節,其中高8位在第幾個(gè)字節由HPIC中的BOB位決定。

HR/W指明當前對HPI的操作是讀還是寫(xiě)。

HAS、HDS1/2、HCS用于鎖存上述控制信號。HPI提供兩種鎖存方式,一種是由HAS(主機地址鎖存信號)的下降沿鎖存各控制信號;另一種是由后三者共同完成,HCS為HPI的選通信號,接低電平,HDSI和HDS2中的任何一個(gè)的下降沿鎖存各控制信號。我們采用第二種方式,即HAS不使用,始終接高,HCS和HDS2接低,控制信號的鎖存由HDS1的低跳變來(lái)完成。該鎖存信號還指示了一次HPI口操作過(guò)程的開(kāi)始。

HRDY為HPI準備好指示。

HINT為DSP向主機發(fā)出中斷的引腳。

HPIENA為HPI使能控制信號,高電平使能HPI操作。

2 單片機的I/O口分配、連線(xiàn)和程序設計

2.1 單片機I/O口分配

在本系統中,考慮到板子的面積,選擇了體積小的AT89C2051單片機,并省去了P0和P2口,增加了一個(gè)精密的模擬比較器,P1.0和P1.1除了作為I/O口(需外部電阻上拉)外,還同時(shí)作為比較器的正負極輸入,而P3.6則專(zhuān)門(mén)用作比較器輸出。因此AT89C2051提供了15根雙向I/O口線(xiàn),除去P3.0和P3.1用作異步串口和P1.0~P1.7用作與HPI口數據總線(xiàn)通信外,還有5根I/O口線(xiàn)可用。由于還需要控制HPI口的各控制信號和與DSP的握手信號,剩下的5根I/O口線(xiàn)顯然不夠,所以還在FPGA里設計一鎖存器,把P1口用作控制/數據復用口。具體的I/O口信號分配如下:

P1.0~P1.7接HPI口的數據線(xiàn)HD0~HD7。當作控制信號復用時(shí),

P1.0接FPGA內鎖存器的鎖存信號;

P1.1經(jīng)FPGA鎖存,控制HCNTL0;

P1.2經(jīng)FPGA鎖存,控制HCNTL1;

P1.3經(jīng)FPGA鎖存,控制HBIL;

P1.4經(jīng)FPGA鎖存,控制HR/W;

P3.2接HPI的HINT;

P3.3接HPI的XF;

P3.4接HPI的HRDY;

P3.5為單片機請求發(fā)送信號,接FPGA的P3.5;

P3.7經(jīng)FPGA控制HDS1,鎖存HPI的各控制信號

圖1給出了HPI接口與兩片AT89C2051之間的連接圖。

2.2 單片機程序設計要點(diǎn)

上面講到,P3.5作為單片機的發(fā)送請求信號,當天數據發(fā)送時(shí)為高電平,當為低電平時(shí)則表示單片機想要發(fā)送數據,向總線(xiàn)仲裁器申請使用總線(xiàn),總線(xiàn)仲裁器判斷當前誰(shuí)可以使用總線(xiàn),然后通過(guò)外中斷0中斷DSP處理器,同時(shí)通過(guò)BIO口告知DSP當前可以使用總線(xiàn)的單片機,最終由DSP通過(guò)XF管腳集中控制單片機的總線(xiàn)使用權。單片機在獲取總線(xiàn)使用權并送完數據后,向HPI的控制寄存器的DSPINT位寫(xiě)1,用中斷通知DSP。在單片機需接收數據時(shí),DSP首先設置XF腳,選擇由哪個(gè)單片機接收,然后設置HINT腳為低,通過(guò)中斷告知單片機進(jìn)行接收。單片機從HPI口接收時(shí)也應置P3.5為低,以便保持總線(xiàn)仲裁器的單片機選擇信號BIO與XF腳一致。

在對單片機編程時(shí)需要注意以下幾點(diǎn):(1)由于兩個(gè)單片機共享總線(xiàn),為保證相互之間不會(huì )干擾,沒(méi)有使用總線(xiàn)的單片機P1口必須處于高阻態(tài)。根據P1口的內部結構,單片機不使用總線(xiàn)時(shí),往P1口的內部結構,單片機不使用總線(xiàn)時(shí),往P1口寫(xiě)入0xFF即可達到這一目的。(2)由于P1口作為控制/數據信號復用口,故編程時(shí),對每次HPI口操作,先在P1口送出控制信號,接著(zhù)設置P1.0產(chǎn)生低→高的跳變,把控制HPI口的P1.1~P1.4信號鎖存到FPGA內部的鎖存器,這時(shí)P1口才能作為數據端口,在P3.7產(chǎn)生一低跳變后,發(fā)起一次數據傳遞。(3)編程時(shí),應防止單片機被同時(shí)要求對HPI口進(jìn)行收、發(fā)操作。這可以依據實(shí)際情況,靈活地進(jìn)行處理,限于篇幅,不再述。

3 總線(xiàn)仲裁器的設計

總線(xiàn)仲裁器的功能主要是根據單片機P3.5的總線(xiàn)請求信號,選擇當前可以使用總線(xiàn)的單牒 同,仲裁器的設計需做到單片機能夠公平競爭總線(xiàn)使用權。在兩個(gè)單片機競爭總線(xiàn)的情況下,用一個(gè)簡(jiǎn)單的狀態(tài)機即可達到目的。狀態(tài)機state僅有兩個(gè)狀態(tài)S0和S1,P3.5為高電平時(shí),不申請總線(xiàn),狀態(tài)機保持原狀態(tài);P3.5為低電平時(shí),則根據當前請求總線(xiàn)的單片機,狀態(tài)機轉換相應的狀態(tài)。如單片機同時(shí)申請使用總線(xiàn),則保持當前的狀態(tài)不變。下面給出狀態(tài)轉換表(S0表示選擇單片機1,S1表示選擇單片機2):

state, MCU1_P3.5, MCU2_P3.5 =>state;

S0, 0, x =>S0;

S0, 1, 0 => S1;

S0, 1, 1 => S0;

S1, x, 0 => S1;

S1, 0, 1 => S0;

S1, 1, 1 => S1;

當狀態(tài)機有狀態(tài)變換時(shí),用FPGA產(chǎn)生一個(gè)脈寬約為1μs的低電平脈沖。這一信號接DSP外中斷INT0腳,用于中斷DSP,并且將狀態(tài)機的當前狀態(tài)通過(guò)BIO腳告知DSP,指明正在請求使用總線(xiàn)的單片機。

此外,如前所述,FPGA內部還設置一鎖存器,由P1.0的高跳變將P1口送出的HPI口控制信號鎖存。至于控制HDS1的兩個(gè)P3.7信號,在FPGA內部只需將兩信號相與即可。

4 單片機與微機串口的硬件連線(xiàn)

在IBM PC/XT微機系統中,其串口符合RS-232C接口標準。為提高抗干擾能力,RS-232C標準采用負邏輯,低電平在-5V~-15V之間(通常用-12V表示)為邏輯1,高電平在+5V~+15V之間(通常用+12V表示)為邏輯0。上述電平稱(chēng)為EIA電平,它與TTL電平和CMOS電平不同。為了使AT89C2051能與微機進(jìn)行串行通信,可以利用MAX232完成RS-232C電平與TTL電平的相互轉換。圖2給出了硬件連線(xiàn)圖。

單片機程序在完成對串口的工作模式和波特率設置等初始化過(guò)程后,即可開(kāi)始與串口通信。通信方式有查詢(xún)方式和中斷方式兩種。由于查詢(xún)方式需CPU不斷查詢(xún)標志位,程序效率不高,故在單片機操作比較繁忙時(shí)通常采用中斷方式,具體的編程應用這里不再介紹。

介紹了通過(guò)FPGA芯片作為總線(xiàn)仲裁器,實(shí)現微機雙串口各自通過(guò)AT89C2051與DSP HPI口通信的設計方法。該電路與采用專(zhuān)用芯片的電路相比,并不顯得復雜,比較實(shí)用。由于與DSP存儲器之間的數據交換完全由單片機發(fā)起,DSP就可以從數據的傳送中解脫出來(lái),去完成更復雜的控制和運算。實(shí)際證明,這一電路能很好地達到我們的設計要求,在異步數據傳輸速率為9600bps情況下,可以可靠地實(shí)現微機雙串口與DSP之間的通信。



評論


相關(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>