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