概述 在微機測控系統中,用作上位機的PC機系統與用作下位機的單片機之間經常要進行信息交換。目前的主流單片機和PC機內部均帶有串行口,因而兩者之間的通信可通過串行口完成。但是,在實際應用中有時主控PC機和單片機相隔很遠,為保證數據能高速及時、安全的傳至PC機,單片機與PC機之間采用RS485協議的串行通行較為合理。為了滿足實時通信的需要,我們把接口電路做成全雙工的形式。
實際應用中,需要把PC機傳給單片機的一些數字量作顯示,而這對于MSP430單片機來說,運用液晶顯示模塊最合適,它可以把串口遠程傳輸的量加以處理然后直觀的用液晶作實時顯示,這在實際生活中有較大的應用空間。 TI公司MSP430系列單片機是一種超低功耗的混合信號控制器,其中包括一系列器件,它們針對不用的應用由不同的模塊組成。在MSP430A系列單片機中,液晶驅動作為一個片內外模塊存在于MSP430F4XX和MSPX3XX等系列型號的器件中,利用這個特點,可以把PC機要傳輸的數據在MSP430系列單片機的液晶模塊驅動下直接顯示。
硬件設計 485串行通信接口電路的設計 實際應用中,由于大多數普通PC機和單片機只有常用的RS232串口通信口,而不具備RS485通信接口,為了實現RS485協議的串行通信,必須在PC側配置RS485與RS232間相互轉換。單片機與PC機間的RS485通信總體硬件接口電路的框圖如圖1所示。
單片機側接口電路設計 圖2中MAX490是MAXIM公司的RS485接口芯片,內部結構如圖3所示。MAX490支持單電源+5V工作,可以實現全雙工通信。其中R0、D0端的電平標準如下:邏輯“0”為 0.5V—0.8V 之間,邏輯“1”在2.0V—Vcc之間。工作狀態為:當A端電壓比B端電壓高200mV以上,R0輸出邏輯“1”,而當A端電壓比B端電壓低200mV,R0輸出邏輯“0”;當DI輸入邏輯“0”,Y輸出低,Z輸出高,反之Y輸出高,Z輸出低。

單片機MSP430串行通信模塊的URXD、UTXD電平符合TTL/CMOS標準,當PC機的RXMCU有電平輸入時,它首先通過6N137光電隔離,保護單片機不受干擾,由O腳輸出到DI,從而轉化為RS485電平由Y、Z輸出。反之,PC機的輸出信號轉換成MAX490 A、B端的輸入,并首先轉換為R0輸出,然后經過光電隔離后最終由TXMCU輸出。
PC機側接口電路設計
PC機側電路的具體實現如圖3所示,RS232的電平標準如下:邏輯“0”的電平范圍為 5V-15V,邏輯“1”的電平范圍為5V-15V。這里選用的MAX232A是MAXIM公司的RS232電平轉換芯片。
當PC機的TXDPC輸出到R1IN時候,首先由MAX232A轉換成TTL電平由R1OUT輸出,經過6N137光電隔離后輸入DI腳,從而轉換為RS485電平由Z、Y輸出。
同理,單片機輸出信號轉換成的RS485電平信號輸入A、B腳,經過MAX490轉換成TTL電平,再經過光電隔離最終由RXDPC輸出。必須強調的是在電路的連接中PC側接口電路中的MAX490芯片引腳RSOUT+,RSOUT-必須和單片機側MAX490芯片引腳RSIN+、RSIN-兩兩錯開相連,這樣才能正常的通信。

液晶驅動及顯示電路設計
在系統中,我們需要把PC機傳給單片機信息里面的一些關鍵的數字量作顯示,對于MSP430單片機來說,運用液晶顯示模塊是最為合適的,可以把串行口遠程傳輸的量加以處理然后直觀的用液晶作實時顯示,這在實際生活中有較強的應用空間。這里所提到的液晶是不帶任何驅動電路的,這樣我們可以進一步自己定制液晶塊,理論上可以顯示任何信息。
MSP430A器件上的液晶顯示器的控制/驅動將簡化液晶顯示器的顯示。不同型號的液晶驅動能力不同,在設計中我們采用 MSP430的41X系列,有96段驅動能力。

液晶的驅動有4種方法:靜態,2MUX或1/2占空比,3MUX或1/3占空比, 4MUX或1/4占空比。對于不同系列、不同型號的液晶驅動原理,控制方法都是一樣的,不同點在于驅動液晶段數不一樣,或可顯示信息的多少不一樣。在實驗中我們采用4MUX。圖4所示為MSP430液晶驅動模塊的概圖。

其中需要注意以下兩點: (1)液晶的偏壓。由于液晶驅動使用交流電壓,所以必須根據液晶的工作模MSP430進行偏壓設置,具體的操作是:STATIC模式下,R33開路,R03-R23接地,2MUX模式下,分別在R33、R13以及R13、R03之間接上10K的電阻;3/4MUX模式下,分別在R33、R23之間,R23、R13以及R13、R03之間接上10K的電阻,這樣就能保證COM0-COM3出來供給液晶塊的電壓符合要求,如圖5所示。

(2)頻率的設置。MSP430有三種時鐘ACLK(輔助時鐘)、MCLK(主時鐘)、SMCLK(子時鐘),其中液晶的驅動頻率FCLK來自ACLK。在XTIN和XTOUT之間接上振蕩頻率為32KHz的晶振,Fclk可以根據需要選為1024Hz、512Hz、256Hz、128Hz等。 由FRFQ0和FRFQ1的設置可以滿足不同液晶對頻率的要求,其中Flcd=2*MUX(rate)*F(framing)。
例如:采用3MUX,已知F(framing)=100Hz-30Hz,
由F(LCD)=2*MUX(rate)*F(framing)=6*F(framing),
可知F(LCD)=180Hz-600Hz。可選擇的F(LCD)為1024Hz、512Hz、256Hz、128Hz,所以F(LCD)=32K/128=256Hz,所以FRFQ0=1、FRFQ1=0。
在以上兩點做好的基礎上,我們只要把要輸出的數字所對應的代碼輸出到MSP430的顯存就可以顯示。實驗中如液晶抖動,可適當提高液晶的驅動頻率。如液晶亮度不夠,應適當調整偏壓電阻的大小。
軟件設計 單片機串行通信的原理及編程方法 通過利用PC機、仿真器以及IAR ICE集成開發環境完成單片機軟件的調試,單片機側的通行可以采用串行中斷方式或者查詢方式。在單片機軟件實現的過程中有下列要求(1)串口通信設置(2)串口模式的選擇(3)選擇合適的波特率,在實驗中我們統一采用查詢方式。
PC機的VC串行通信及編程方法 采用ActiveX控件 (MScomm控件)編程,Windows平臺先進的ActiveX技術使得對串行口編程比較容易。利用已有的ActiveX控件,只需要編寫少量的代碼,就可以輕松高效地完成任務。Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發數據的簡便方法。
結束語 利用上述硬件電路,可以實現符合RS485協議的串行通信,并且可以把所關心的數字量液晶顯示。該系統已經完成實驗階段測試。如果軟硬件設計合理,進一步提高可靠性,加上全雙工遠程通信和液晶顯示功能相信可以有更為廣泛的實際應用。
|