孫波,王勇
(南京郵電大學(xué)自動化學(xué)院,南京210003)
隨著測控技術(shù)的發(fā)展,通信功能越來越重要,串行接口作為一種主要的通信接口越來越受關(guān)注。在實(shí)際應(yīng)用中,作為控制中樞的計(jì)算機(jī)往往只有一至兩個(gè)串口,為了控制多臺被測計(jì)算機(jī),需要對串口進(jìn)行擴(kuò)展。
目前RS232是PC與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS232采取不平衡傳輸方式,即所謂單端通訊。本設(shè)計(jì)用到RS232的三線和七線接線方式。
RS422標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,與RS232不一樣,數(shù)據(jù)信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B,如圖1所示。
圖1
●與主控板通過RS232的第一個(gè)串口(三線通信)通信,接收主控板的指令并反饋數(shù)據(jù);
●對主控計(jì)算機(jī)接入的第二個(gè)RS232口(七線通信)進(jìn)行擴(kuò)展,擴(kuò)出4個(gè)分時(shí)使用的RS232口和2個(gè)RS422口;
控制微處理機(jī)采用MSP430F149IPM,控制模塊主要功能:通過RS232串口與系統(tǒng)上位機(jī)進(jìn)行通信,接收其發(fā)出的指令,并反饋接收命令正確與否信息;系統(tǒng)總體硬件框圖如圖2所示。
1.2.1 RS232和TTL電平轉(zhuǎn)換
圖2
RS232 標(biāo)準(zhǔn)規(guī)定邏輯1的電平為 -15~-3V ,邏輯0的電平為+3~+15, 而 CMOS 電路的電平范圍一般是從0V到電源電壓 ,單片機(jī)的I/O電壓一般是0~3.3V,為了與 單片機(jī)的供電電壓保持一致 ,必須經(jīng)過接口電路進(jìn)行標(biāo)準(zhǔn)轉(zhuǎn)換 ,目前較常用的方法是使用集成電路轉(zhuǎn)換器件 ,本設(shè)計(jì)用的芯片是MAX3221。主控計(jì)算機(jī)的串口經(jīng)過電平轉(zhuǎn)換連接到單片機(jī)和多路復(fù)用器上。如圖3所示為本設(shè)計(jì)232轉(zhuǎn)換TTL模塊。
圖3 232轉(zhuǎn)換TTL模塊
1.2.2 RS232接口擴(kuò)展
在本設(shè)計(jì)中 ,將 MSP430單片機(jī)的地址線RS232_A0、RS232_A1、RS232_A2 引出與 多路復(fù)用器ADG707的 A0、A1、A2分別連通。ADG707芯片可以將輸入的串口信號擴(kuò)展為8組。通過A0,A1,A2三個(gè)片內(nèi)寄存器,將主控計(jì)算機(jī)接入的第二個(gè)RS232口(三線通信)進(jìn)行擴(kuò)展,這樣, ADG707的4個(gè)通道經(jīng)由電平轉(zhuǎn)換芯片連接實(shí)現(xiàn)TTL與RS232電平轉(zhuǎn)換之后 ,即可實(shí)現(xiàn)串行數(shù)據(jù)的收發(fā)。同時(shí),另外兩路通道經(jīng)由 RS485電平轉(zhuǎn)換芯片實(shí)現(xiàn)與 422總線的數(shù)據(jù)交換。ADG707實(shí)現(xiàn)串口擴(kuò)展的硬件連接如圖4所示。
1.2.3 RS232轉(zhuǎn)422接口擴(kuò)展
RS422 的接口標(biāo)準(zhǔn)與 RS485 相似,采用4線制方式,能夠與遠(yuǎn)程測控終端進(jìn)行全雙工通信,實(shí)現(xiàn)數(shù)據(jù)遠(yuǎn)程高速傳輸。考慮到 MAX3491 芯片具有使能端,且由 MAX3491構(gòu)成的信號傳輸通道具有更好的噪聲抑制能力、電纜長度和可靠性,故設(shè)計(jì)時(shí)選擇利用 2 片MAX3491來實(shí)現(xiàn)232到422的轉(zhuǎn)換。
圖4 串口擴(kuò)展硬件連接圖
在硬件設(shè)計(jì)中,將MSP430地址線 RS232_A0、RS232_A1、RS232_A2 引出與多路復(fù)用器ADG707的 A0、A1、A2 分別連通,通過 A0,A1,A2三個(gè)片內(nèi)寄存器選擇管腳可訪問或控制 ADG707的各個(gè)寄存器。通過以上的設(shè)計(jì),就可以獲得每個(gè)端口的每個(gè)寄存器的地址 ,剩下的事情就是對各個(gè)寄存器的讀寫訪問了。ADG707真值表如表1所示。
表1
該系統(tǒng)由上位機(jī)和下位機(jī)協(xié)同工作,形成一個(gè)小型通訊系統(tǒng)。串口擴(kuò)展模塊在工作時(shí),數(shù)據(jù)通過中斷的方式與外設(shè)進(jìn)行通信,當(dāng)主機(jī)需要發(fā)送數(shù)據(jù)時(shí),只需要將數(shù)據(jù)先寫入發(fā)送FIFO,然后通過中斷方式通知外設(shè),當(dāng)下位機(jī)確定接受數(shù)據(jù)時(shí),主機(jī)便將數(shù)據(jù)發(fā)送到UART。同理,下位機(jī)數(shù)據(jù)通過串口傳輸?shù)街骺貦C(jī)時(shí),首先送入讀FIFO中,然后產(chǎn)生中斷請求,向主機(jī)指示該數(shù)據(jù)已可使用,上位機(jī)通過程序進(jìn)行判斷,如果其他串口并未占用總線,就可以讀入數(shù)據(jù)。
Rx_data=RXBUF1; //清除中斷標(biāo)志
if ((Rx_data==0xAA)&&(Rx_flag==0))
{
Rx_flag=1; //接受到頭幀
}
else if (Rx_flag==1)
{
Rx_flag=0; //接收到命令,清空標(biāo)志
Tx_PC(0xAA);
switch (Rx_data)
{
case 0x00:
{
ADG707_state&=0xf8; //A2=0,A1=0,A0=0
P4OUT=ADG707_state;
Tx_PC(0x00);
break;
}
}
}
系統(tǒng)客戶端軟件采用Microsoft Visual C + + 6.0設(shè)計(jì) , 打開客戶端軟件,進(jìn)行串口設(shè)置,選擇端口,然后選擇被測計(jì)算機(jī),客戶端軟件顯示相應(yīng)計(jì)算機(jī)選通,此時(shí)主控機(jī)便可與此被測計(jì)算機(jī)通信。經(jīng)過現(xiàn)場反復(fù)測試,系統(tǒng)功能符合方案要求。
串行通信在工業(yè)控制領(lǐng)域應(yīng)用廣泛,本文解決了MSP430單片機(jī)在串行通信應(yīng)用系統(tǒng)中的串口使用局限問題,經(jīng)實(shí)際應(yīng)用驗(yàn)證,該串口擴(kuò)展系統(tǒng)設(shè)計(jì)可靠,運(yùn)行穩(wěn)定,滿足方案要求。用戶也可以根據(jù)實(shí)際情況增加或減少擴(kuò)展數(shù)量。
[1]曹磊.MSP430單片機(jī)C程序設(shè)計(jì)與實(shí)踐[M].北京:北京航天航空大學(xué)出版社,2007.
[2]沈建華,楊艷琴,等.MSP430系列16位超低功耗單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[3]王海祥,陳美君.基于ARM9的串口擴(kuò)展的設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2008(12):84-87.
[4]張羽,胡玉貴,等.基于FPGA的多串口擴(kuò)展實(shí)現(xiàn)[J].電子器件,2009,32(1):234-236.
[5]陳崗.基于S3C44B0X多串口控制器的研究[J].信息技術(shù)及信息化,2008(6):53-55.
[6]馮明發(fā),陳海松.基于MSP430單片機(jī)的便攜式智能設(shè)備的設(shè)計(jì)[J].儀器儀表用戶,2005(4):107-108.
[7]侯德鑫.基于MSP430多路串口監(jiān)聽儀的研制[J].科技資訊,2009(22):83-84.
[8]徐明,堵國樑.雙向透明串口擴(kuò)展技術(shù)在嵌入式系統(tǒng)中的實(shí)現(xiàn)[J].信息化縱橫,2009(14):31-33.