国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

PC機(jī)與單片機(jī)RS485通信系統(tǒng)的設(shè)計(jì)

2013-12-26 05:46:54張杰
科學(xué)時(shí)代·上半月 2013年12期
關(guān)鍵詞:終端機(jī)PC機(jī)控件

張杰

【摘 要】本文介紹了利用Visual Basic 6.0開發(fā)工具和Atmle89S52單片機(jī)進(jìn)行通信,探討在VB環(huán)境下來實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的數(shù)據(jù)傳輸方式,著重介紹通過max485芯片實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通信以及單片機(jī)串口通信的實(shí)現(xiàn)方法。

【關(guān)鍵詞】單片機(jī);485通訊;MSComm控件

1.引言

隨著計(jì)算機(jī)技術(shù)特別是單片機(jī)技術(shù)的發(fā)展,在各種單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)中,常常遇到計(jì)算機(jī)與外界的信息交換問題。目前,許多檢測儀表、在線分析儀、工控機(jī)等均采用RS485方式通過串口與上位機(jī)進(jìn)行通信,用戶通過串行通信可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控遠(yuǎn)程設(shè)備的工作情況,對設(shè)備運(yùn)行參數(shù)進(jìn)行優(yōu)化,通過指令反饋控制儀器的運(yùn)行情況,從而實(shí)現(xiàn)生產(chǎn)節(jié)能與質(zhì)量控制。鑒于PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,單片機(jī)則具有快速以及容易控制的特點(diǎn),在數(shù)據(jù)量不大、傳輸要求不高的情況下。在本文中采用的是MAX485芯片實(shí)現(xiàn)RS485方式通信。PC機(jī)與單片機(jī)一般采用應(yīng)答方式,當(dāng)PC機(jī)控制多個(gè)單片機(jī)終端時(shí),PC機(jī)發(fā)送一個(gè)地址幀選中一個(gè)終端,再對選中的終端進(jìn)行一對一的通信,實(shí)現(xiàn)這種通信方式需要對發(fā)送幀的格式和單片機(jī)端的相應(yīng)寄存器進(jìn)行設(shè)置。

2.系統(tǒng)組成介紹

本系統(tǒng)由1臺PC機(jī)作為上位機(jī),多個(gè)89S52單片機(jī)為核心作為系統(tǒng)終端,通過RS485總線結(jié)構(gòu)將PC機(jī)和各個(gè)終端機(jī)連接起來。PC機(jī)通過RS232/485轉(zhuǎn)換器連接到485總線,單片機(jī)通過MAX485芯片模塊連接到485總線上,實(shí)現(xiàn)與PC機(jī)的通信,PC機(jī)通過查詢方式與各個(gè)終端通信,完成監(jiān)測、控制等功能。各個(gè)終端接受主控機(jī)指令,完成就地調(diào)整、控制、測量以及信息回傳等工作。

3.通信過程與通信協(xié)議

由于MAX485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道。在任意時(shí)刻只允許一臺單機(jī)處于發(fā)送狀態(tài)。因此要求應(yīng)答的單機(jī)必須在偵聽到總線上呼叫信號已經(jīng)發(fā)送完畢,并且沒有其它單機(jī)發(fā)出應(yīng)答信號的情況下,才能應(yīng)答。半雙工通訊對主機(jī)和從機(jī)的發(fā)送和接收時(shí)序有嚴(yán)格的要求。如果在時(shí)序上配合不好,就會發(fā)生總線沖突,使整個(gè)系統(tǒng)的通訊癱瘓,無法正常工作。

為了防止沖突的發(fā)生每個(gè)終端機(jī)有一個(gè)地址編號,各個(gè)終端通過寄存器設(shè)置成接收地址。通信時(shí)主控PC機(jī)首先發(fā)送地址幀,數(shù)據(jù)是所要操控的終端機(jī)的編號,標(biāo)志位是1,這時(shí)各個(gè)終端都接收這個(gè)地址幀;各終端接收到地址幀后,把收到的地址數(shù)據(jù)與本身的地址編號進(jìn)行比較,如果不相等,則設(shè)置成地址接收方式,繼續(xù)等待接收地址;如果收到的地址數(shù)據(jù)與本機(jī)的地址編號相同,則該終端單片機(jī)設(shè)置成數(shù)據(jù)接收方式,并返回該機(jī)地址,等待接收數(shù)據(jù);主控PC機(jī)在規(guī)定的時(shí)間內(nèi)接收到終端機(jī)返回的地址后,發(fā)送數(shù)據(jù)幀;終端機(jī)接收到主控機(jī)的數(shù)據(jù)后,完成主機(jī)要求的任務(wù),并回傳主控機(jī)要求的數(shù)據(jù),通信結(jié)束后終端機(jī)重新設(shè)置成地址接收方式。

4.通信的具體實(shí)現(xiàn)

采用Visual Basic是實(shí)現(xiàn)PC機(jī)的串口通信。串口通信控件MSComm,全稱為Microsoft Communications Control,是Microsoft公司提供的ActiveX控件,目的是為了簡化Windows下串行通信編程,它既可以用來提供簡單的串口端口通信功能,也可以用來創(chuàng)建功能完備的、事件驅(qū)動的高級通信工具。

4.1 MSComm控件處理通信的方式

4.1.1事件驅(qū)動方式

事件驅(qū)動通信是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)程序得到通知,例如,在串口接收緩沖區(qū)中有一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí),程序都可以利用MSComm控件的OnComm事件捕獲并處理這些通信事件,OnComm事件還可以檢查和處理通信錯(cuò)誤。在程序設(shè)計(jì)中,可以在OnComm事件處理函數(shù)中加入自己的處理代碼,一旦事件發(fā)生即可自動執(zhí)行該段程序。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。

4.1.2查詢方式

在程序的每個(gè)關(guān)鍵功能完成之后,可以通過檢查CommEvent屬性的值來查詢事件和錯(cuò)誤。適用于自保持的應(yīng)用程序較小的編程。查詢方式的編程可用計(jì)時(shí)器或Do…Loop程序?qū)崿F(xiàn)。

4.2 MSComm控件的常用屬性

對控件編程首先需要了解它的屬性和事件。下面介紹MSComm控件的一些主要屬性。Commport 設(shè)置并返回通信串口號

Settings 以字符串的形式設(shè)置并返回串口波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。格式為:MSComm1.Settings=”BBBB,P,D,S”

Portopen 設(shè)置并返回串口狀態(tài),也可以打開和關(guān)閉串口

Input 從接收緩沖區(qū)中讀取數(shù)據(jù)并清空緩沖區(qū)

Inputlen 設(shè)置并返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)

InBufferSize 設(shè)置并返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)

InBufferCount 設(shè)置并返回接收緩沖區(qū)中等待接收的字符數(shù)

InputMode 設(shè)置并返回接收數(shù)據(jù)的類型。其值為0和1時(shí),分別表示通過Input屬性以文本方式和二進(jìn)制方式取回?cái)?shù)據(jù)

OutBufferSize 設(shè)置并返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)

OutBufferCount 設(shè)置并返回發(fā)送緩沖區(qū)中等待計(jì)算機(jī)發(fā)送的字符數(shù)

Output 向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計(jì)時(shí)無效,運(yùn)行時(shí)只讀

Rthreshold 在MSComm控件設(shè)置ConunEvent屬性為comEvReceive并產(chǎn)生OnComm之前,設(shè)置并返回要接收的字符數(shù)

其中CommEvent屬性是一個(gè)非常重要的屬性。一旦串口發(fā)生通信事件或產(chǎn)生錯(cuò)誤,依據(jù)產(chǎn)生的事件和錯(cuò)誤,MSComm控件為CommEvent屬性賦以不同的代碼,同時(shí)產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對不同的代碼,進(jìn)行相應(yīng)的處理。

MAX485接口芯片是Maxim公司的一種RS-485芯片。采用單一電源+5 V工作,額定電流為300μA,采用半雙工通訊方式。它完成將TTL電平與RS-485電平轉(zhuǎn)換的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡單,內(nèi)部含有一個(gè)驅(qū)動器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡單。只需要一個(gè)信號控制MAX485的接收和發(fā)送即可。

從通信協(xié)議及數(shù)據(jù)傳輸過程可知,單片機(jī)在初始化后要保持接收地址狀態(tài),當(dāng)接收到本機(jī)地址后回送地址并設(shè)置本機(jī)為接收數(shù)據(jù)狀態(tài),接收完數(shù)據(jù)后作出相應(yīng)的反應(yīng),最后回到接收地址的狀態(tài)。

6.結(jié)束語

本文介紹了一個(gè)以PC機(jī)為上位機(jī),以單片機(jī)為終端機(jī),通過RS485網(wǎng)絡(luò)把它們連接起來的計(jì)算機(jī)監(jiān)控系統(tǒng)的實(shí)現(xiàn)方法,重點(diǎn)介紹了利用Visual Basic6.0控件訪問串口實(shí)現(xiàn)串行通信、利用RS485接口實(shí)現(xiàn)單片機(jī)串口通信。具有開發(fā)簡單、成本低的優(yōu)點(diǎn),性能穩(wěn)定、運(yùn)行可靠、抗干擾能力強(qiáng)可以進(jìn)行半雙工通信組成多機(jī)通信網(wǎng)絡(luò)。

參考文獻(xiàn):

[1]張輝.Visual Basic 串口通信及編程實(shí)例.化學(xué)工業(yè)出版社,2013.11.

[2]李江全.Visual Basic數(shù)據(jù)采集與串口通信測控應(yīng)用實(shí)戰(zhàn).人民郵電出版社,2012.1.

[3]孫育才.ATMEL 新型AT89S52系列單片機(jī)及其應(yīng)用.清華大學(xué)出版社,2005.1.

[4]張萌.單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例.清華大學(xué)出版社,2007.1.

[5]鮑安平.單片機(jī)應(yīng)用技術(shù).西安安電子科技大學(xué)出版社,2013.1.

猜你喜歡
終端機(jī)PC機(jī)控件
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
重慶ETC手持終端機(jī)方案探討
基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
電子制作(2017年23期)2017-02-02 07:16:47
冷軋機(jī)操作站終端機(jī)的改造性修復(fù)
國家水資源監(jiān)控能力建設(shè)項(xiàng)目在線數(shù)據(jù)采集傳輸接收設(shè)備規(guī)約符合性測試結(jié)果發(fā)布
中國水利(2014年9期)2014-07-25 03:57:48
淺談如何配置一個(gè)基本安全的終端機(jī)
就這樣玩會VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
在PowerBuUder中利用WinSock控件制作簡單的Web服務(wù)器
清水河县| 漳浦县| 澎湖县| 株洲县| 肇州县| 巩留县| 钟祥市| 阳曲县| 边坝县| 资中县| 黄浦区| 天等县| 海门市| 章丘市| 南召县| 古蔺县| 丹凤县| 莎车县| 青铜峡市| 辽宁省| 江山市| 嘉祥县| 绥宁县| 武功县| 沾益县| 富阳市| 莫力| 道孚县| 古田县| 屏东县| 惠安县| 壶关县| 贵南县| 龙海市| 通海县| 玛多县| 文水县| 湘阴县| 登封市| 长宁县| 电白县|