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