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

?

單片機(jī)多機(jī)串行通信設(shè)計方法分析

2013-04-29 02:25:13孫慧湯宇
職業(yè)·中旬 2013年9期
關(guān)鍵詞:單片機(jī)

孫慧 湯宇

摘 要:本文從多機(jī)通信協(xié)議入手,重點(diǎn)研究了如何利用查詢法和中斷法實(shí)現(xiàn)主從式通信,并通過Proteus仿真軟件對兩種通信方法進(jìn)行了仿真驗(yàn)證。查詢法通信易于實(shí)現(xiàn),但占用單片機(jī)內(nèi)部資源較多。中斷法通信更穩(wěn)定可靠,可以大大提高單片機(jī)的工作效率。

關(guān)鍵詞:單片機(jī) 多機(jī)通信 查詢法 中斷法 Proteus仿真

單片機(jī)目前已廣泛應(yīng)用于家用電器、航空航天、儀器儀表及專用設(shè)備的智能化管理和過程控制等領(lǐng)域。隨著計算機(jī)技術(shù)的發(fā)展及工業(yè)自動化水平的提高,在許多場合單機(jī)控制已不能滿足現(xiàn)場要求,多機(jī)串行通信構(gòu)成的主從式通信方式,因其通信編程靈活、硬件簡潔,并遵循統(tǒng)一的標(biāo)準(zhǔn),在工業(yè)控制領(lǐng)域應(yīng)用前景廣闊,非常具有研究意義。

一、多機(jī)通信原理

51系列單片機(jī)的多機(jī)通信一般采用主從式通信方式。在這種方式中,只有一臺主機(jī),可以有多臺從機(jī)。主機(jī)發(fā)送的信息可以傳到各個從機(jī)或指定的從機(jī),各個從機(jī)發(fā)送的信息只能被主機(jī)接收,從機(jī)之間不能進(jìn)行通信。單片機(jī)多機(jī)通信示意圖如圖1所示。

圖1 單片機(jī)多機(jī)通信示意圖

二、多機(jī)通信過程

在多機(jī)通信時串口必須工作在方式2或方式3,根據(jù)通信要求設(shè)置單片機(jī)通信控制寄存器SCON中的每一位。

多機(jī)通信的過程如下。

第一,所有從機(jī)處于地址幀接收狀態(tài)(SM2=1)。

第二,主機(jī)先發(fā)送一個地址幀,其中前8位數(shù)據(jù)表示要尋址的從機(jī)地址,第9位為1(TB8=1)表示該幀為地址幀。

第三,所有從機(jī)接收到地址幀后,把接收到的地址與本機(jī)地址相比較。地址相符時將SM2清0,并發(fā)回從機(jī)地址作為應(yīng)答信號,由主機(jī)進(jìn)行確認(rèn)。地址不相符的從機(jī)不作任何處理,仍保持SM2=1。

第四,在主機(jī)確認(rèn)地址正確時,向?qū)ぶ返膹臋C(jī)發(fā)送相應(yīng)的數(shù)據(jù)信息。當(dāng)確認(rèn)地址錯誤時,不發(fā)送數(shù)據(jù)信息。

第五,地址相符的從機(jī)(SM2=0),可以接收到主機(jī)發(fā)來的數(shù)據(jù)信息。而對于地址不符的從機(jī)SM2=1,則不予理睬,這樣就實(shí)現(xiàn)了主機(jī)與地址相符的從機(jī)之間的雙機(jī)通信;

第六,被尋址的從機(jī)通信結(jié)束后,恢復(fù)為多機(jī)通信狀態(tài)(SM2=1)。

三、多機(jī)通信協(xié)議設(shè)計

本次設(shè)計為了驗(yàn)證多機(jī)通信的協(xié)議是否正確,在Proteus軟件中繪制了一個由1主機(jī)2從機(jī)構(gòu)成的多機(jī)通信系統(tǒng)。主機(jī)和從機(jī)芯片均采用AT89S51單片機(jī),主機(jī)通過按鍵發(fā)送信號,從機(jī)接收信號,通過從機(jī)連接的數(shù)碼管顯示變化,來表明一個主機(jī)和兩個及兩個以上從機(jī)通信的正確性,軟件部分主要包括通信模塊、按鍵掃描模塊、數(shù)碼管顯示模塊和中斷服務(wù)程序等,使用的通信模式主要是查詢法和中斷法兩種。

1.查詢法通信協(xié)議算法設(shè)計

查詢法即通過單片機(jī)程序的不斷掃描,循環(huán)查詢通信標(biāo)志位來判斷是否進(jìn)行通信以及和哪個從機(jī)通信的方式,從而完成主從式多機(jī)之間的數(shù)據(jù)交換任務(wù)。主機(jī)主要完成尋址及數(shù)據(jù)發(fā)送,查詢法通信主機(jī)設(shè)計流程圖如圖2所示。

圖2 主機(jī)通信設(shè)計流程圖

從機(jī)主要完成地址校驗(yàn)、數(shù)據(jù)接收和顯示任務(wù)。所有從機(jī)的通信程序相似,只是從機(jī)定義的通信地址不可相同,從機(jī)通信設(shè)計流程圖如圖3所示。

圖3 從機(jī)通信設(shè)計流程圖

2.中斷法通信協(xié)議算法設(shè)計

所有從機(jī)初始時均處于聽命狀態(tài),即SM2=1,以便接收主機(jī)發(fā)來的地址,當(dāng)接收到一幀信息的RB8為“1”時,表示主機(jī)發(fā)送來的是地址信息,所有的從機(jī)均發(fā)生接收中斷,進(jìn)入相應(yīng)的中斷服務(wù)程序,把接收到的地址和本機(jī)地址進(jìn)行比較。如果相符合就令其SM2=0,并向主機(jī)發(fā)回本機(jī)地址以作應(yīng)答,主機(jī)得到應(yīng)答信號并校驗(yàn)成功后,就與該從機(jī)聯(lián)通實(shí)現(xiàn)雙機(jī)通信,準(zhǔn)備接收主機(jī)發(fā)來的命令或數(shù)據(jù)信息,順利實(shí)現(xiàn)地址幀和數(shù)據(jù)幀的分離。而其他的未被尋址從機(jī)保持SM2=1并退出各自的中斷服務(wù)程序。被尋址從機(jī)在通信完成后重新使SM2=1,并退出中斷服務(wù)程序,等待下次通信。

主機(jī)的程序設(shè)計可分為兩部分:一是主程序,主要用于完成按鍵掃描;二是中斷服務(wù)程序,用于完成通信及數(shù)據(jù)的收發(fā)功能。中斷法通信實(shí)際是將圖2中的虛線框部分的掃描程序替換為如圖4所示的中斷服務(wù)程序去執(zhí)行。

圖4 主機(jī)中斷服務(wù)程序設(shè)計流程圖

從機(jī)程序設(shè)計主要分為兩部分,一是主程序,完成數(shù)碼管的顯示任務(wù);二是中斷服務(wù)程序,完成主機(jī)發(fā)送過來的地址校驗(yàn)和數(shù)據(jù)接收等任務(wù)。從機(jī)的中斷服務(wù)程序設(shè)計流程圖如圖5所示。

圖5 從機(jī)中斷服務(wù)程序設(shè)計流程圖

四、多機(jī)通信在Proteus中的仿真

按照上述兩種通訊協(xié)議算法的設(shè)計思路,使用單片機(jī)C語言進(jìn)行編程,采用Keil C51 uVesion3作為調(diào)試工具,用Proteus 作為仿真工具,與Keil C51 uVesion3聯(lián)合調(diào)試,最終成功實(shí)現(xiàn)了1主機(jī)2從機(jī)之間的通信,仿真運(yùn)行圖如圖6所示。

按下K1鍵,對1號從機(jī)的數(shù)碼管顯示值加1,按下K2鍵,對2號從機(jī)的數(shù)碼管顯示值加1。若主機(jī)尋址從機(jī)時發(fā)現(xiàn)地址錯誤,將不進(jìn)行任何操作,此時不會影響其他通信地址正確的從機(jī)的正常通信。

五、結(jié)束語

本設(shè)計的兩種通信方案,均通過了Proteus成功仿真,并在實(shí)際電路中也得到了驗(yàn)證,1臺主機(jī)最多可以同時與255臺從機(jī)進(jìn)行通信。中斷法通信方式因其程序結(jié)構(gòu)簡潔明了、運(yùn)行可靠、占用單片機(jī)內(nèi)部資源較小,因此較查詢法通信方式的應(yīng)用更為廣泛。

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計
方正县| 卓尼县| 乌拉特前旗| 望城县| 苍梧县| 福清市| 池州市| 咸阳市| 锡林郭勒盟| 新邵县| 安岳县| 三穗县| 奎屯市| 竹北市| 吐鲁番市| 新巴尔虎右旗| 巴东县| 广州市| 永丰县| 株洲县| 建瓯市| 孙吴县| 土默特右旗| 哈尔滨市| 金秀| 兴宁市| 深州市| 合江县| 平山县| 星子县| 水富县| 平和县| 尉犁县| 泸溪县| 湘西| 太仆寺旗| 东方市| 祥云县| 双流县| 广水市| 全南县|