新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的TMS320VC5402的HPI通信設(shè)計(jì)

基于單片機(jī)的TMS320VC5402的HPI通信設(shè)計(jì)

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

3.2 程序設(shè)計(jì)要點(diǎn)

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

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

4總線仲裁器的設(shè)計(jì)

總線仲裁器的功能主要是根據(jù)單片機(jī)P3.5的總線請(qǐng)求信號(hào),選擇當(dāng)前可以使用總線的單片機(jī),仲裁器的設(shè)計(jì)需做到單片機(jī)能夠公平競(jìng)爭(zhēng)總線使用權(quán)。在兩個(gè)單片機(jī)競(jìng)爭(zhēng)總線的情況下,用一個(gè)簡(jiǎn)單的狀態(tài)機(jī)即可達(dá)到目的。狀態(tài)機(jī)state僅有兩個(gè)狀態(tài)S0和S1,P3.5為高電平時(shí),不申請(qǐng)總線,狀態(tài)機(jī)保持原狀態(tài);P3.5為低電平時(shí),則根據(jù)當(dāng)前請(qǐng)求總線的單片機(jī),狀態(tài)機(jī)轉(zhuǎn)換到相應(yīng)的狀態(tài)。如單片機(jī)同時(shí)申請(qǐng)使用總線,則保持當(dāng)前的狀態(tài)不變。下面給出狀態(tài)轉(zhuǎn)換表(S0表示選擇單片機(jī)1,S1表示選擇單片機(jī)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;

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

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

4 單片機(jī)與微機(jī)串口的硬件連線

在IBM PC/XT微機(jī)系統(tǒng)中,其串口符合RS-232C接口標(biāo)準(zhǔn)。為提高抗干擾能力,RS-232C標(biāo)準(zhǔn)采用負(fù)邏輯,低電平在-5V~-15V之間(通常用-12V表示)為邏輯“1”,高電平在+5V~+15V之間(通常用+12V表示)為邏輯“0”。上述電平稱為EIA電平,它與TTL電平和CMOS電平不同。為了使AT89C2051能與微機(jī)進(jìn)行串行通信,可以利用MAX232完成RS-232C電平與TTL電平的相互轉(zhuǎn)換。

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

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

參考文獻(xiàn):

[1].AT89C2051datasheethttp://www.dzsc.com/datasheet/AT89C2051_.html.
[2].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[3].TL16C550datasheethttp://www.dzsc.com/datasheet/TL16C550_.
[4].TTLdatasheethttp://www.dzsc.com/datasheet/TTL_1174409.html.
[5].MAX232datasheethttp://www.dzsc.com/datasheet/MAX232_1074207.html.


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 單片機(jī) MS320VC5402 HPI通信

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉