freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

用單片機c語言實現多功能電能表通信協(xié)議電能表端(編輯修改稿)

2025-07-04 03:07 本頁面
 

【文章內容簡介】 多的微控制器中,MCS51系列單片機通用性強,價格便宜,實用型強,其內部帶有一個可用于異步通訊的全雙工的串行通訊接口,可以很方便地構成一個主從式多機系統(tǒng)來模擬電能表和數據終端設備。經過綜合考慮,本文采用MCS51單片機模擬電能表的微控制器芯片以及數據終端設備C語言作為MCS一51單片機程序的開發(fā)語言已經成為一種趨勢,單片機C語言具有一系列優(yōu)點決定:(1)C語言是一種編譯型程序設計語言,兼顧了多種高級語言的特點,并具備匯編語言的功能;(2)C語言有功能豐富的庫函數、運行速度快、編譯效率高、有良好的可移植性,并且可以直接實現對系統(tǒng)硬件的控制;(3)C語言是一種結構化程序設計語言,它支持當前程序設計中廣泛采用的自頂向下結構化程序設計技術;(4)C語言程序具有完善的模塊程序結構,從而為軟件開發(fā)中采用模塊化程序設計方法提供了有力的保障;(5)用C語言來編寫目標系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯的增加軟件的可讀性,便于改進和擴充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。單片機C語言具有的一系列優(yōu)點,以及使用C語言進行程序設計已成為軟件開發(fā)的一個主流。C語言程序具有操作簡單,可移植性強,能很好的滿足該協(xié)議,用單片機C語言實現多功能電能表通信協(xié)議具有相當實用的價值。本文采用C語言編程開發(fā)實現DL/T6452007《多功能電能表的通信協(xié)議》。方案論證 第三章 方案論證 DL/T6452007《多功能電能表通信協(xié)議》介紹DL/T645于1997年發(fā)布第一版,2007年經過修訂發(fā)布第二版。兩版標準從結構上差別不大,主要是控制命令、通信項的擴充和數據標識的重新梳理,下面以DL/T 6452007為例作個簡單介紹。該標準適用于本地系統(tǒng)中多功能電能表與手持單元或其他數據終端設備進行點對點的或一主多從的數據交換方式,是主從結構的半雙工通信。標準根據簡易開放系統(tǒng)互聯模型分為物理層、數據鏈路層、應用層。物理層部分定義了三種通信接口:接觸式紅外接口、調制型紅外接口和RS485電氣接口,接觸式紅外接口和調制型紅外接口用于在實驗室或現場環(huán)境下一對一的電能表抄設,RS485電氣接口可通過總線連接實現一主多從的通信。通信鏈路的建立與解除均由主站發(fā)出的信息幀來控制。每幀由幀起始符、從站地址域、控制碼、數據域長度、數據域、幀信息縱向校驗碼及幀結束符7個域組成。每部分由若干字節(jié)組成。每字節(jié)含8位二進制碼,傳輸時加上一個起始位(0)、一個偶校驗位和一個停止位(1), 共 11位。其傳輸序列如圖31。D0 是字節(jié)的最低有效位,D7 是字節(jié)的最高有效位。先傳低位,后傳高位。字節(jié)格式如圖1所示。圖1 字節(jié)格式幀是傳送信息的基本單元。幀格式如圖2 所示。說 明代 碼幀起始符68H地址域A0A1A2A3A4A5幀起始符68H控制碼C數據域長度L數據域DATA校驗碼CS結束符16H圖2 幀格式幀是由十六進制字節(jié)數組組成,每個字節(jié)在傳輸時加上1個起始位(0),1個偶校驗位和一個停止位(1)。1)幀起始符和幀結束符顧名思義分別代表一幀信息的開始和結束。主站在下發(fā)命令幀時需要在第一個幀起始符前加上三個FEH,起到喚醒電能表的作用,以便使電能表處于接收狀態(tài)。2)地址域地址域代表從站的通信地址,位于兩個68H之間,由6個字節(jié)12位十進制數表示。當地址域為“999999999999時代表廣播地址,在總線方式下可以下發(fā)廣播命令,從站收到命令無需應答。地址域還支持AAH通配符,方便現場維護工人輸入通信地址。3)控制碼控制碼用1字節(jié)十六進制編碼,該標準定義了12個控制命令,包括讀數據、讀后續(xù)數據、讀通信地址、寫數據、寫通信地址、廣播校時、凍結、更改通信速率、修改密碼、最大需量清零、電表清零、事件清零,控制碼格式見圖3。圖3 控制碼結構4)數據域長度數據域長度用一字節(jié)表示,它的數值即為數據域的字節(jié)數量。5)數據域數據域是主從站傳遞數據的區(qū)域,在標準中數據域可包含數據標識、密碼、操作者代碼、數據、幀序號等,具體內容根據控制碼不同而不同。為防止出現連續(xù)多個“1’’或“0”,在發(fā)送前數據域每個字節(jié)要做加33H處理,并且要將字節(jié)順序顛倒傳輸。而接收方應該將數據域按字節(jié)減33H處理,然后顛倒順序進行解析。數據域的字節(jié)數也有限制,讀數據時不應超過200字節(jié),寫數據時不應超過50字節(jié)。6)校驗碼DL/T6452007采取的校驗方式為累加校驗和,即從第一個幀起始符開始到校驗碼之前的所有各字節(jié)的模256的和。通信時標準要求收到命令幀后的響應延時為20ms~500ms,字節(jié)間的停頓延時應小于500ms。標準為每個通信的數據項都定義了一個數據標識與之對應,數據標識用4字節(jié)表示,分七大類:電能量、最大需量及發(fā)生時間、變量、事件記錄、參變量、凍結量、負荷記錄。數據項采用壓縮BCD碼或ASCII表示。 整體設計思想本設計研究電能表端如何實現該協(xié)議,該協(xié)議中手持單元或其它數據終端為主站,多功能電能表為從站,為實現這一協(xié)議,必須有電能表的微控制器芯片以及相應的數據終端。MCS51系列單片機由于內部帶有一個可用于異步通訊的全雙工的串行通訊接口,因此可以很方便地構成一個主從式多機系統(tǒng)來模擬電能表和數據終端來實現該協(xié)議。本文使用MCS51單片機模擬多功能電能表的微控制器,模擬成從站,即單片機多機通信系統(tǒng)中的從站,使用相同的單片機模擬數據終端設備作為主站,即單片機多機通信系統(tǒng)中的主站。所以本設計的總體思想即用MCS51單片機的多機通信系統(tǒng)模擬實現多功能電能表的通信協(xié)議,設計重點在電能表微控制器部分的實現,也就是MCS51單片機的多機通信系統(tǒng)中從機部分。本設計以C語言作為單片機開發(fā)語言,利用Proteus軟件做電路仿真,利用keil軟件做程序設計,結合兩個軟件運行。該協(xié)議物理層部分定義了三種通信接口:接觸式紅外接口、調制型紅外接口和RS485電氣接口,接觸式紅外接口和調制型紅外接口用于在實驗室或現場環(huán)境下一對一的電能表抄設,RS485電氣接口可通過總線連接實現一主多從的通信。因為本設計模擬實現一主多從的通信,所以采用RS485接口通信方式。 單片機的串行口簡介 單片機概述單片微型計算機(Single Chip Microputer)簡稱單片機,又稱MCU(Micro Controller Unit),是將計算機的基本部分微型化,、ROM、RAM、并行I/O、串行I/O、定時器/計數器、中斷控制、系統(tǒng)時鐘及系統(tǒng)總線等。 現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,為在計算機網絡和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。本文在研究傳統(tǒng)的多機通信系統(tǒng)的基礎上,設計了一種基于MCS-51系列單片機AT89S52 的多機通信系統(tǒng),模擬多功能電能表以及數據終端設備來實現多功能電能表的通信協(xié)議。 單片機的串行口的結構MCS51單片機內部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接發(fā)送器,既可以接收數據也可以發(fā)送數據。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器剛只能寫入不能讀出。這個通信口既可以用于網絡通信,亦可以實現串行異步通信,還可以構成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉換器,就可以方便地構成標準的RS232接口。80C51單片機的串行口的結構如圖4所示。圖4 80C51單片機的串行口的結構串行口有兩個物理上獨立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結構;發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會產生重疊錯誤。 80C51串行口的控制寄存器1.特殊功能寄存器SCON SCON 是一個特殊功能寄存器,用以設定串行口的工作方式、接收/發(fā)送控制以及設置狀態(tài)標志,字節(jié)地址為98H。SCON寄存器的各位定義如表1所示。位76543210 字節(jié)地址:98HSM0SM1SM2RENTB8RB8TI RISCON 表1 SCON寄存器SM0和SM1為工作方式選擇位,可選擇四種工作方式,如表2所示。SM0SM1方式說明波特率000移位寄存器fosc/1201110位異步收發(fā)器(8位數據)可變10211位異步收發(fā)器(9位數據)fosc/64或fosc/3211311位異步收發(fā)器(9位數據)可變表2 串口通信4種工作方式SM2為多機通信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數據進入SBUF,并激活RI,進而在中斷服務中將數據從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數據進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現多機通信。在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。REN為允許串行接收位。由軟件置REN=1,則啟動串行口接收數據;若軟件置REN=0,則禁止接收。TB8用在方式2或方式3中,是發(fā)送數據的第九位,可以用軟件規(guī)定其作用。可以用作數據的奇偶校驗位,或在多機通信中,作為地址幀/數據幀的標志位(在方式0和方式1中,該位未用) 。RB8用在方式2或方式3中,是接收到數據的第九位,作為奇偶校驗位或地址幀/數據幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。TI,發(fā)送中斷標志位。在方式0時,當串行發(fā)送第8位數據結束時,或在其它方式,串行發(fā)送停止位的開始時,由內部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務程序中,必須用軟件將其清0,取消此中斷申請。RI,接收中斷標志位。在方式0時,當串行接收第8位數據結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務程序中,用軟件將其清0,取消此中斷申請[7]。2.特殊功能寄存器PCONPCON的字節(jié)地址為87H,它的第7位SMOD是與串口通信波特率的設置有關的選擇位。SMOD()為波特率倍增位。在串行口方式方式方式3時,波特率與SMOD有關,當SMOD=1時,波特率提高一倍。復位時,SMOD=0。 80C51單片機串行口的工作方式 設置SCON寄存器的SM0、SM1=0 0時,串行口工作于方式0。此時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數據由RXD()引腳輸入或輸出,同步移位脈沖由TXD()引腳輸出。發(fā)送和接收均為8位數據,低位在先,高位在后。波特率固定為fosc/12。其中fosc為時鐘頻率。 設置SCON寄存器的SM0、SM1=0 1時,串行口工作于方式1。方式1是10位數據的異步通信口。TXD為數據發(fā)送引腳,RXD為數據接收引腳,傳送一幀數據的格式如圖所示。其中1位起始位,8位數據位,1位停止位。 用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數據從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數據的前8位數據裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。方式一的輸入輸出圖如圖6所示。圖5 方式1輸入圖6 方式1輸出設置SCON寄存器的SM0、SM1=1 0時,串行口工作于方式2,當SM0、SM1=1 1時,串行口工作于方式3。方式2或方式3為11位數據的異步通信口。TXD為數據發(fā)送引腳,RXD為數據接收引腳 。方式2和方式3時起始位1位,數據9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數據為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。 方式2和方式3輸出:發(fā)送開始時,先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上 ,以后每次移位,左邊都移入0。當停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置TI=1,向CPU請求中斷。發(fā)送時序圖如下圖7所示。圖7 方式2或方式3的發(fā)送時序圖方式2和方式3輸入:接收時,數據從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的第9位數據為1)時,接收到的數據裝入接收緩沖器SBUF和RB8(接收數據的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數據丟失,且不置位RI,繼續(xù)搜索RXD引腳的負跳變。接收時序圖如圖8所示。圖8 方式2或方式3的接收時序圖在串行通信中,收發(fā)雙方對發(fā)送或接收數據的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。串行口的四種工作方式對應三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率 =
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1