馬世強
引言:在工業(yè)自動化控制、智能儀器儀表中,單片機的應(yīng)用越來越廣泛,隨著應(yīng)用范圍的擴大和解決問題的需要,對某些數(shù)據(jù)要做較復雜的處理。由于單片機的運算功能較差,不能對數(shù)據(jù)進行復雜處理,因而須借助計算機系統(tǒng)。這就要解決單片機與計算機系統(tǒng)的通信問題,本文就單片機與PC機之間的通信問題進行研究比較有意義。
單片機與PC機之間的通信可分為PC機與單個單片機通信和PC機與多單片機通信,下面就這兩種通信類型做以下分析。
一、 PC機與單個單片機通信
1. 硬件設(shè)計
可采用 MCl488和MCl489芯片的轉(zhuǎn)換接口 MCl488和MCl489芯片為早期的RS-232至TTL邏輯電平的轉(zhuǎn)換芯片。此種電路的不便之處是需要±12V電壓,并且功耗較大,不適合用于低功耗的系統(tǒng)。
8031的TXD為串行口的數(shù)據(jù)發(fā)送線。它經(jīng)過1488電平轉(zhuǎn)換器接于CE-158串行口的RD(數(shù)據(jù)接收線),使8031的數(shù)據(jù)進入PC計算機內(nèi)存。CE-158的DTR(數(shù)據(jù)終端設(shè)備準備好信號),經(jīng)過1489接于8031的 ,作為請求8031向PC計算機發(fā)送數(shù)據(jù)的申請線。
2. 軟件設(shè)計
整個通信軟件分為兩部分:一部分是用8031匯編語言編寫的數(shù)據(jù)發(fā)送程序,可以固化
在8031系統(tǒng)的程序化存儲器中;另一部分是用BASIC語言編寫的數(shù)據(jù)接收程序,配置在PC計算機上。發(fā)送和接收約定為:波特率1200,數(shù)據(jù)位8位,奇偶校驗位為奇校驗。
主程序流程圖如下:
二、 PC機與多單片機通信
PC與多單片機通信的基本原理基本是整個系統(tǒng)中PC機是上位管理機,各從機是分布在不同地點的數(shù)據(jù)采集及執(zhí)行機構(gòu)。PC機與執(zhí)行機構(gòu)之間采用的總線方式為RS-485。PC機作為主控機,通過串口向單片機發(fā)送命令。單片機收到數(shù)據(jù)后,對其進行校驗,并根據(jù)命令類型向PC機返回數(shù)據(jù)。
1. 典型器件介紹
由于接口電平的不一致,一般是不能直接連接的。常用的總線方式根據(jù)通信距離,速度以及網(wǎng)絡(luò)的結(jié)構(gòu)等指標的要求,有RS-232C、RS485、RS422等接口標準。
PC機上大多數(shù)都有RS-232C接口,采用DB-9連接器,RS-232C標準是EIA(電子工業(yè)聯(lián)合會)與BELL公司等共同開發(fā)的通信協(xié)議。適合與數(shù)據(jù)速率在0Kbit/s~20Kbit/s范圍內(nèi)的通信。RS-232C標準對電氣特性、邏輯電平和各種信號線功能都做了規(guī)定。邏輯“1”的電平為-15V~-3V,邏輯“0”的電平-15V~-3V。也就是當傳輸電平的絕對值大于3V時,電路可以有效的檢查出來。介于-3V~+3V的電壓無意義,低于-15V或高于+15V的電壓也認為無意義。因此,在實際工作時,應(yīng)保證電平在有效范圍內(nèi)。
與RS-232C相匹配的連接器有DB-25、DB-15和DB-9 3種,其引腳的定義各不相同。簡化的9芯DB-9連接器其引腳分布如圖
實際應(yīng)用時,一般使用DB-9連接器的2、3和5腳即可滿足需要。TTL電平RS232C接口電平互不兼容,所以兩者接口時,必須進行電平轉(zhuǎn)換。當應(yīng)用系統(tǒng)的通信距離比較遠或干擾比較嚴重的場合,RS-485通信協(xié)議具有比RS232C更優(yōu)良的性能、目前有多重RS485收發(fā)器,常用的有SN75176、MAX485、SN75LBC184等,實現(xiàn)RS-485通信接口較為方便。
2.硬件設(shè)計
PC機與和各數(shù)據(jù)采集及執(zhí)行機構(gòu)之間采用的總線方式為RS-485,而且在從機通信的出口處采用光電隔離技術(shù),為保證通信時potential率能達到9600bit/s,隔離器件可采用高速光6N137。信號在傳輸線上傳輸時,若遇到阻抗不連續(xù)的情況,就會出現(xiàn)反射現(xiàn)象,從而影響信號的遠距離離傳輸。常用雙紋線的特性在110~130,因此在RS-485總線末端接入120Ω的電阻。與單片機端的接口電路類似,將PC機連接到RS485總線上也需要轉(zhuǎn)換電路,PC機處采用的RS-232/RS-485轉(zhuǎn)換器也有采用光電隔離型的,如波士電子的RS-232/RS-485接口轉(zhuǎn)換器。
3.程序設(shè)計
利用RS-485接口標準組成的多機通信網(wǎng)絡(luò)和直接利用TTL接口組成多機通信網(wǎng)絡(luò)最大的不同時RS-485多機通信網(wǎng)采用半雙工工作方式,數(shù)據(jù)在發(fā)送和接收時,必須對RE/DE引腳進行設(shè)置,SN75LBC184工作狀態(tài)只有兩種:發(fā)送和接收。當P1.0為高電平時,SN75LBC184只允許接收,反之只允許發(fā)送。
由于PC機上位管理微機,為便于管理員操作,采用的是具有人性化的操作界面,語言使用Visual C++6.0,數(shù)據(jù)庫使用SQL Server。
由于采用的RS-485總線方式,為半雙通信方法,而且作為終端系統(tǒng),從機的工作是被動的,因此從機時不會主動向管理主機發(fā)送信息的,只有在管理主機由請求時,才會有應(yīng)答信息,各從機在正常情況下一只處于接受狀態(tài),只有在收到管理主機由對本級的呼叫后,主動將狀態(tài)切換為發(fā)送狀態(tài),然后根據(jù)命令向管理主機發(fā)送應(yīng)答信息,發(fā)送完畢后,又馬上返回接受狀態(tài),通信采用的波特率為6900bit/s,8位數(shù)據(jù)位,1位數(shù)束位無奇偶校驗,單片機接受采用中斷方式。
結(jié)論
單片機與PC機之間的通信按單片機數(shù)量劃分為兩大類,PC機內(nèi)要設(shè)計操作畫面,并且要建立數(shù)據(jù)庫,而單片機作為數(shù)據(jù)的采集和執(zhí)行單元,必須能實現(xiàn)通信,做硬件和軟件方面的設(shè)計。
參考文獻
[1]張洪潤.單片機應(yīng)用設(shè)計200例.北京航天大學出版社.
[2]宋戈,黃鶴松等.51單片機應(yīng)用開發(fā)范例大全.人民郵電出版社.
[3]劉坤,宋戈等.51單片機C語言應(yīng)用開發(fā)技術(shù)大全.人民郵電出版社.