




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、大連東軟信息學院本科畢業(yè)設計(論文)論文題目論文題目:基于單片機的網絡協(xié)議設計與實現(xiàn)系 所:電子工程系 專 業(yè):電子信息工程(微電子制造方向) 學生姓名: 學生學號: 指導教師: 導師職稱:副教授 完成日期:2014年4月28日 大連東軟信息學院Dalian Neusoft University of Information大連東軟信息學院畢業(yè)設計(論文) 摘要 IV基于單片機的網絡協(xié)議設計與實現(xiàn)摘 要隨著嵌入式計算機及傳感器性能日益提升且成本逐漸下降,自動化生產技術日趨成熟。而在自動控制的應用中,網絡通信的設計是重要的一環(huán)。本次設計的目標是設計一個連接傳感器和控制設備簡單的主從式通信網絡,實
2、現(xiàn)應用、服務和接口的分離。技術要點是基于RS485網在二線制方式下的半雙工多點互連特性對協(xié)議的各個層次進行有針對性的設計與優(yōu)化,進行可靠、易于實現(xiàn)的通訊。目前工業(yè)中采用的通常為MODBUS、CAN總線及I2C等協(xié)議,因其需要添加額外設備或通信距離較近,以及與PC通信時需要轉換等問題,在一些場合并不適用。針對小規(guī)模、功能相對簡單而需要較高可靠性的應用需求,需要設計相應的輕量級通信協(xié)議,具有完備的通信功能且有較強的檢錯能力,并且可以與PC標準串行端口連接而不需要添加復雜的轉換設備或額外的軟件開發(fā)。本文主要論述了一種基于RS485接口通信協(xié)議的實現(xiàn),具有錯誤校驗及兩種傳輸模式,采用MODBUS數(shù)據(jù)幀
3、格式,上位機使用MFC框架編程,下位機采用STC8051芯片作為處理器,用匯編語言編寫了與具體應用分離的作為調用對象應答程序。并將該通信協(xié)議應用于太陽能匯流箱的通信模塊,對光電池的電流數(shù)據(jù)進行采集之后傳輸?shù)絇C端。關鍵詞:RS485,MODBUS,8051,微控制器大連東軟信息學院畢業(yè)設計(論文) AbstractDesign and Implementation of Microcontroller-Based-On Network ProtocolAbstractAccording to the performance and costs of the embedded computer
4、and sensor are gradually increasing and decreasing, It makes the industrial production automated and informationized. In addition, the design of network communication is a significant element in automatic control applications. This project is a simple network protocol that connects the sensors and a
5、 computer. It is considered as a slave-master network that achieves the isolation of applications, services, and interfaces. The technical points are two-wire half-duplex mode communication based on RS485, which optimizes and designs the levels of protocol specifically in order to provide communicat
6、ion reliably and easily.Currently, MODBUS, can bus, and I2C protocols are used frequently in the industry because you need to add additional equipment, or shorten the communication distance, or convert and communicate with the PC. However, these do not apply in some cases. For small-scale, functiona
7、l relatively simple, and require higher reliability, application requirements, the need to design appropriate lightweight communication protocols, a comprehensive communication capabilities and strong error detection capabilities and can be used with standard PC serial port connection without the ne
8、ed for complicated additional conversion device or software development.This paper focuses on an implementation of communication protocol based on RS485 interface, with error checking, and two transmission modes, in line with the MODBUS data frame format, using low prices STC8051 chips as processor.
9、 PC programming with MFC framework, bit machine using 8051 chip as the processor, written in Assembly language, as answering the call object separate from the application program. Also, the communication protocol used in solar combiner box communication module, battery current to light transmission
10、to the PC side after the data is collected.Key words: RS485, MODBUS, 8051, Microcontrollers大連東軟信息學院畢業(yè)設計(論文) 目錄目 錄 TOC o 1-3 u 摘 要 PAGEREF _Toc386438932 h IAbstract PAGEREF _Toc386438933 h II第1章緒 論 PAGEREF _Toc386438934 h 11.1 論文研究主要內容 PAGEREF _Toc386438935 h 11.1.1 OSI網絡分層模型 PAGEREF _Toc386438936 h
11、11.1.2 RS232/485接口規(guī)范 PAGEREF _Toc386438937 h 11.1.3 協(xié)議設計 PAGEREF _Toc386438938 h 21.2 國內外現(xiàn)狀 PAGEREF _Toc386438939 h 2第2章關鍵技術介紹 PAGEREF _Toc386438940 h 42.1 關鍵性開發(fā)技術的介紹 PAGEREF _Toc386438941 h 42.1.1 RS232/RS485接口 PAGEREF _Toc386438942 h 42.1.2 數(shù)據(jù)鏈路層設計 PAGEREF _Toc386438943 h 42.1.3 應用層設計 PAGEREF _Toc
12、386438947 h 52.1.4 MFC框架概述 PAGEREF _Toc386438948 h 52.2 8051編程結構概述 PAGEREF _Toc386438949 h 6第3章系統(tǒng)分析 PAGEREF _Toc386438950 h 73.1 構架概述 PAGEREF _Toc386438951 h 73.1.1 功能構架 PAGEREF _Toc386438952 h 73.1.2 硬件架構 PAGEREF _Toc386438953 h 73.1.3 軟件架構 PAGEREF _Toc386438958 h 83.2 系統(tǒng)開發(fā)環(huán)境 PAGEREF _Toc386438961
13、h 93.3 系統(tǒng)任務的可行性分析 PAGEREF _Toc386438962 h 9第4章系統(tǒng)設計 PAGEREF _Toc386438963 h 104.1 設計指導思想和原則 PAGEREF _Toc386438964 h 104.1.1 指導思想 PAGEREF _Toc386438965 h 104.1.2 系統(tǒng)設計原則 PAGEREF _Toc386438966 h 104.2 構架概述 PAGEREF _Toc386438971 h 104.3 系統(tǒng)的軟件結構設計 PAGEREF _Toc386438972 h 114.4 系統(tǒng)硬件結構設計 PAGEREF _Toc3864389
14、73 h 11第5章系統(tǒng)實現(xiàn) PAGEREF _Toc386438974 h 155.1 軟件實現(xiàn) PAGEREF _Toc386438975 h 155.1.1 下位機程序設計 PAGEREF _Toc386438976 h 155.1.2 PC程序功能設計 PAGEREF _Toc386438977 h 165.1.3 PC程序邏輯實現(xiàn) PAGEREF _Toc386438981 h 175.2 硬件實現(xiàn) PAGEREF _Toc386438982 h 195.2.1 電路圖設計 PAGEREF _Toc386438983 h 195.2.2 電路組裝調試 PAGEREF _Toc3864
15、38988 h 21第6章系統(tǒng)測試 PAGEREF _Toc386438989 h 236.1 測試方案及測試用例 PAGEREF _Toc386438990 h 236.1.1 冒煙測試 PAGEREF _Toc386438991 h 236.1.2 白盒測試 PAGEREF _Toc386438992 h 236.1.3 逆向測試 PAGEREF _Toc386438993 h 236.2 測試結論 PAGEREF _Toc386438994 h 24第7章結論 PAGEREF _Toc386438995 h 25參考文獻 PAGEREF _Toc386438996 h 26致 謝 PAG
16、EREF _Toc386438997 h 28大連東軟信息學院畢業(yè)設計(論文)- 第1章緒 論隨著工業(yè)控制自動化的快速發(fā)展,儀器儀表的數(shù)字化通信成為工業(yè)生產的重要環(huán)節(jié),目前采用的協(xié)議有I2C、CAN總線和MODBUS等,但很多應用中并不需要協(xié)議中的特性,而是以快速簡潔的開發(fā)、使用以及穩(wěn)定的數(shù)據(jù)傳輸為目的??紤]到傳感器、控制器等節(jié)點設備與主機較符合主-從式的網絡結構,故采用RS485總線式接口來構建網絡,進行數(shù)據(jù)的傳輸以及錯誤校驗,以較低成本來實現(xiàn)可靠的數(shù)據(jù)傳輸。1.1 論文研究主要內容RS485總線具有較高的通信速率以及簡便的布線方式,故在工業(yè)應用中占有重要地位。基于RS485的通信協(xié)議應當具
17、有尋址、錯誤校驗和讀、寫節(jié)點的基本功能,同時可支持遠距離的可靠傳輸,可提供一百個以上節(jié)點的負載能力,并考慮信號的反射、干擾等實際應用中的問題。本文主要研究一種簡潔的通信協(xié)議,類似MODBUS協(xié)議的體系結構,設計實現(xiàn)了一個物理層、數(shù)據(jù)鏈路層到應用層的網絡。并與PC相連,實現(xiàn)一個對太陽能光伏匯流箱的監(jiān)控設備。在本設計中使用的是廉價且穩(wěn)定的STC 8051控制芯片作為下位機處理器,考慮到設備的兼容性以及生產成本等因素,采用RS232接口作為通信接口,同時該協(xié)議也適用于RS485接口,只須在電路上做出些許改動即可。通過該協(xié)議的實現(xiàn),可設計用于智能匯流箱的光伏匯流采集器,用于檢測光電池電池板運行狀態(tài)以及
18、應用于風速、溫度、光強傳感器與監(jiān)控端的接口,幫助光電池板穩(wěn)定高效運行。1.1.1 OSI網絡分層模型OSI(Open System Interconnection)開放式系統(tǒng)互聯(lián)參考模型,是一個邏輯上的定義,一個規(guī)范,它把網絡協(xié)議從邏輯上分為了7層。每一層都有相關、相對應的物理設備,比如常規(guī)的路由器是三層交換設備,常規(guī)的交換機是二層交換設備。OSI七層模型是一種框架性的設計方法,建立七層模型的主要目的是為解決異種網絡互連時所遇到的兼容性問題,其最主要的功能就是幫助不同類型的主機實現(xiàn)數(shù)據(jù)傳輸。本協(xié)議包含了OSI模型中的物理層、數(shù)據(jù)鏈路層和應用層,物理層采用RS232/485串行接口,數(shù)據(jù)鏈路層為
19、總線單主機方式進行編址和尋址,應用層為詢問-應答模型,從機對主機的指令進行解析和回應從而實現(xiàn)對從機的控制與監(jiān)控。1.1.2 RS232/485接口規(guī)范RS-232標準定義了25芯標準連接器中的20根信號線,其余的五根線作備用。而通常只使用其中10根1。在串行通信中只使用GND、TXD、RXD三根即可傳輸數(shù)據(jù)。但其接口與TTL(Time To Live)不兼容,傳輸速率不高且容易受干擾,只能在短距離傳輸(一般在15m左右)2。RS485為半雙工網絡標準,采用兩線制差分信號,一般采用屏蔽雙絞線傳輸。以“A”、“B”兩線中電平差承載數(shù)據(jù),可有效避免通信中常出現(xiàn)的共模干擾。在標準中同一總線上最多可以掛
20、接32個結點,采用較特殊的通信芯片可承受125256節(jié)點的負載,適用于各種規(guī)模的網絡。其網絡拓撲為總線型,不支持星型或環(huán)型網絡結構,也可用多串口卡和串口服務器進行較為復雜的網絡架設。因與PC相連較為方便,本設計采用RS232作為實驗接口,在應用中可以對電路進行修改從而使用RS485總線網絡,可支持多從機并可在遠距離進行通信。由于物理層和數(shù)據(jù)鏈路層以及應用層相互隔離,采用何種網絡設備與協(xié)議的實現(xiàn)并無沖突,在對電路進行一定修改之后本協(xié)議在RS485網內也可正常運行。1.1.3 協(xié)議設計參考MODBUS協(xié)議原理進行設計,MODBUS協(xié)議定義了控制器能識別和使用的信息結構,在MODBUS網絡上進行通信
21、時,協(xié)議能使每一臺控制器知道他本身的設備地址,識別可用的幀,并取出其中數(shù)據(jù)。由于應用需求有限,不需要全部實現(xiàn)MODBUS協(xié)議的功能,故僅采用RTU模式傳輸,ASCII模式由于采用8位字節(jié)傳輸兩個ASCII碼,其優(yōu)點在于字符間隔很長(1秒)時也不會出錯,但是傳輸效率較低。在能夠保證連續(xù)傳輸?shù)那闆r下應當采用RTU模式。在保證完備性的前提下實現(xiàn)MODBUS的部分功能碼,以完成一個輕量級,易于使用的通信協(xié)議。1.2 國內外現(xiàn)狀在目前的應用中,以I2C、CAN總線和MODBUS協(xié)議為主,工業(yè)控制應用一般以穩(wěn)定可靠、成本低廉及通用兼容為核心,性能則以滿足應用需求為標準,一般無需性能冗余,這與消費電子中的追
22、求性能及易用的特征明顯不同。上述幾個通信協(xié)議的發(fā)展相比迅速普及的以太網接入技術在速度上相差較遠,通常速率在50200kbps范圍內,與以光纖、衛(wèi)星為載體的以太網動輒1Gbps至10Gbps相差較大,但是在控制、傳感網絡等應用中,低成本、穩(wěn)定性、遠距離和易于維護相比性能更為重要。CAN總線是Controller Area Network的縮寫,意為控制器區(qū)域網絡,最大通信距離10km(5kbps),最大速率1Mbps(40米),是國際通用的標準協(xié)議,適合于組建互聯(lián)的終端設備網絡,在強干擾、遠距離等條件下依然能夠保證穩(wěn)定通信3。I2C協(xié)議則是以簡單的電路實現(xiàn)多設備的連接,節(jié)省空間和接口資源,支持多
23、主控,任何設備都可成為主控設備。很多芯片自帶I2C接口,可以方便地實現(xiàn)系統(tǒng)各部分監(jiān)測和控制的功能。MODBUS協(xié)議是第一個真正用于工業(yè)生產的總線協(xié)議,具有標準、開放、多接口支持和簡單易于開發(fā)的特性,由于完全的開放和免費,故廣泛被使用在工業(yè)控制領域。標準的MODBUS協(xié)議是基于RS232接口的點對點協(xié)議,在總線網絡上采用主-從式結構,每個網絡僅有一個主機,采用查詢-回應的方式進行通信,在很多應用中自然地符合其邏輯結構,例如可編程控制器和傳感網絡。同時MODBUS可實現(xiàn)TCP連接,實現(xiàn)服務器-客戶機方式的網絡架構,例如傳感器為服務器,PC為客戶機,采用可靠連接的方式從傳感器獲取數(shù)據(jù)。目前采用的通信
24、協(xié)議通常為以太網和CAN總線或是獨立實現(xiàn)的簡易通信協(xié)議,但在很多應用中無需復雜協(xié)議中的部分功能,而簡易的協(xié)議往往不夠可靠或是在開發(fā)上層應用時較為困難。因此,經過綜合評估決定采用MODBUS協(xié)議作為基礎,因其電路實現(xiàn)與軟件接口分離,可應用于包括RS232RS485等多種通信載體之上,且相對其它協(xié)議較容易理解,可應用于多種通信場合。并且MODBUS協(xié)議是完全開放且免費的,在工業(yè)領域得到廣泛應用,使得本協(xié)議具有很高的實用性。大連東軟信息學院畢業(yè)設計(論文)第2章關鍵技術介紹2.1 關鍵性開發(fā)技術的介紹2.1.1RS232/RS485接口物理層采用RS232接口,RS232接口是點對點的串行通信接口標
25、準,在本設計中使用通信芯片對接口進行適配。RS232可支持20m之內的19200bit/s的通信,可與PC上的RS232接口直接相連。雖然通信距離較短,但由于無需添加額外設備,可以滿足設計需求。對于更多下位機及更遠傳輸距離的需求,可采用RS485網進行通信。RS485標準采用平衡式發(fā)送、差分式接收的數(shù)據(jù)收發(fā)器來驅動總線,將信號串擾減到最小。本設計中采用MAX485CSA芯片外加上拉電阻進行驅動,在端點處加入終端電阻防止信號的反射,符合工業(yè)標準,并且有標準接線器,在實際應用中能夠靈活鋪設線路。此外,MODBUS協(xié)議還可應用于多種網絡上,包括RS422、以太網以及ZigBee傳感網之上,以本文中的
26、RS485總線拓撲為例可設計更多符合需求的網絡應用,滿足在不同場合的要求4。2.1.2 數(shù)據(jù)鏈路層設計數(shù)據(jù)鏈路層處于OSI參考模型的第二層,在接收到物理層的數(shù)據(jù)位之后將其組合為數(shù)據(jù)塊,進行差錯校驗和傳輸速率調節(jié),并承擔網絡連接中的尋址和數(shù)據(jù)鏈路的建立、維持及釋放等功能。(1)數(shù)據(jù)幀格式MODBUS協(xié)議以信息幀的S方式傳輸數(shù)據(jù),每幀具有開始和結束字段,并具有校驗字段,以進行錯誤檢測。ASCII模式下采用LRC校驗,RTU方式下采用CRC校驗。傳送順序為每個字符/字節(jié)采用從左向右的順序進行傳輸。數(shù)據(jù)幀格式如表2.1,2.2所示。表2.1 ASCII信息幀開始地址功能數(shù)據(jù)LRC結束1字符2字符2字符
27、N字符2字符2字符表2.2 RTU信息幀開始地址功能數(shù)據(jù)CRC結束T1-T2-T3-T48位8位N8位16位T1-T2-T3-T4其中地址的有效范圍為0247,從機的尋址范圍為1247,主機尋址時將從機地址放在地址段以向從機尋址,從機應答時將自己的地址放在地址段使主機進行識別。地址0為廣播地址,所有從機均予以識別5。(2)CRC校驗基本原理:在K位信息碼后再拼接R位的校驗碼,整個編碼長度為N位,因此,這種編碼也叫(N,K)碼。對于一個給定的(N,K)碼,可以證明存在一個最高次冪為N-K=R的多項式G(x)6。根據(jù)G(x)可以生成K位信息的校驗碼,而G(x)叫做S這個CRC碼的生成多項式7。生成
28、過程:假設要發(fā)送的信息用多項式C(x)表示,將C(x)左移R位(可表示成C(x)*2R),這樣C(x)的右邊就會空出R位,這就是校驗碼的位置8。用 C(x)*2R 除以生成多項式G(x)得到的余數(shù)就是校驗碼9。(3)通信模式MODBUS具有兩種通信模式,其中ASCII模式直接傳輸ASCII碼,適用于高級語言編程且在間隔長達1s的情況下不會發(fā)生錯誤,但傳輸效率較低。控制器在以RTU模式通信時,每8位字節(jié)分為兩個4位16進制字符傳遞,故相比ASCII模式字符利用率較高,但信息必須連續(xù)傳輸。在本應用中采用RTU方式較為合理,適用于模擬量的傳輸10。2.1.3應用層設計MODBUS串行鏈路協(xié)議之上是一
29、個主/從拓撲的通信協(xié)議,在其之上是MODBUS應用層協(xié)議,提供了包括讀/寫線圈狀態(tài),讀/寫保持寄存器、對單一/多個寄存器置數(shù)等功能。以上功能可以實現(xiàn)各種狀態(tài)量和控制指令的傳輸,形成與傳輸層無關的數(shù)據(jù)報文,在MODBUS中稱之為協(xié)議數(shù)據(jù)元。MODBUS采用命令/應答方式,每個命令對應一種應答報文,命令中含有從機地址,相應的從機會對該命令做出響應。例如,讀2056圈的指令如表2.3,2.4所示。表2.3 讀線圈狀態(tài)命令從機地址功能碼起始地址線圈數(shù)錯誤校驗110100 1300 25-表2.4 讀線圈狀態(tài)應答從機地址功能碼字節(jié)數(shù)線圈狀態(tài)錯誤校驗110105XX XX XX XX XX-通過實現(xiàn)包括讀
30、線圈狀態(tài)在內的六種功能碼可完整實現(xiàn)項目功能,其他諸如讀取事件記錄以及診斷代碼可不做響應。2.1.4 MFC框架概述微軟基礎類庫(Microsoft Foundation Class Library)是放置Windows API的面向對象的包裝的C+類庫。MFC由兩大部分組成:一是通常所說的C+類庫,是MFC類庫的主體部分,這些類構成了MFC應用程序框架;二是MFC預定義宏、全局變量和全局函數(shù),是MFC類庫的輔助部分,它們都是用MFC進行Windows應用程序開發(fā)的不可缺少的組成部分11。2.2 8051編程結構概述8051是一種8位單芯片微控制器,屬于MCS-51芯片的一種,由英特爾公司于19
31、81年首先制造,后開放標準而成為當今出貨量最大的IC之一。8051具有32個I/O,6個內部控制寄存器,21個專用寄存器,以及四個通用寄存器組和641024KB(根據(jù)不同型號略有不同)的片內ROM,此外還可外擴60KB的片外存儲器。通過對I/O和寄存器的讀寫可實現(xiàn)在各種場合的控制應用。第3章系統(tǒng)分析3.1 構架概述3.1.1 功能構架本協(xié)議采用詢問-應答式通信,主機向從機發(fā)出詢問,相應從機做出應答,其他從機不予響應??偩€拓撲及詢問/應答周期是協(xié)議實現(xiàn)的關鍵點,此架構的網絡在從機數(shù)量不大的情況下具有實現(xiàn)簡單、工作穩(wěn)定的特性,RS485網絡結構如圖3.1所示。協(xié)議的詢問-應答周期如圖3.2所示。圖
32、3.1 RS485網絡結構圖3.2 設備詢問-應答周期3.1.2 硬件架構(1)下位機處理器單片機采用STC12C5A32AD,最大頻率可達35HMz,帶有32kB Flash存儲器,其中部分可以作為EEPROM;有1280Bytes RAM,其中256Bytes 是基本RAM,其他是擴展RAM,需要采用外部RAM方式訪問;有2路10位ADC,多組PWM輸出,可以免除外部DAC;有上電復位電路和看門狗,設計方便功能強大,且出貨量大價格低廉,是很常見的MCS51兼容單片機。(2)RS485接口芯片RS485接口芯片采用MAX485CSA,是常用的RS485/422收發(fā)器,具有一個接收器一個發(fā)送器
33、,采用4.75V 5.25V寬電壓供電,即使在電源條件不理想的狀況下仍能正常工作。(3)RS232接口芯片RS232接口芯片采用MAX232CSE,是MAX232的子型號,MAX232CSE是專為RS-232通信接口設計的收發(fā)器,特別是針對無法實現(xiàn)12V供壓的情況,適用于低電壓和低功耗的設計。(4)硬件組成結構如圖3.3所示,從機采用微處理器IO連接通信芯片的基本結構,由RS485芯片進行數(shù)據(jù)傳輸,從而與PC機端應用程序聯(lián)動。圖3.3 芯片連接示意圖軟件架構(1)下位機程序本項目中采用的是8051兼容芯片,編程結構與8051單片機相同,在本設計中采用匯編語言進行程序編寫,可以直接對內存進行操作
34、,防止C語言中對內存分配的不可預知及可能出現(xiàn)的調用深度過高而引發(fā)的各種問題12。下位機采用被動監(jiān)聽的方式等待數(shù)據(jù)幀,當數(shù)據(jù)幀到來時改變標志位,使中斷處理程序盡可能短而保證不會發(fā)生碰撞的問題。具體的應答流程在第四章中進行詳細闡述。(2)上位機程序上位機采用C+語言的MFC框架編程,由計算機串口直接通信,與下位機類似的具有CRC校驗、數(shù)據(jù)幀填寫等功能。同時主要應用功能及復雜邏輯控制由上位機程序實現(xiàn),下位機僅具有對基本指令相應的能力,有利于減少二者的耦合度,使接口與實現(xiàn)分離,并保證開發(fā)的靈活性。3.2 系統(tǒng)開發(fā)環(huán)境 硬件環(huán)境:CPU i5-3210M/8G DDRAM;軟件環(huán)境:Windows 7/
35、Visual Studio 2013。3.3 系統(tǒng)任務的可行性分析 (1)本系統(tǒng)采用被廣泛使用的8051微處理器和MAX232/485接口芯片,具有很高的可靠性。RS485網的通信速率最高為19200bit/s,而本系統(tǒng)中采用的STC12C5A32AD使用的晶振為22MHz,足以支持正常通信。(2)MODBUS作為工業(yè)標準在各個領域均有廣泛應用,具有實現(xiàn)簡單、工作穩(wěn)定的特性,本協(xié)議實現(xiàn)MODBUS的部分功能碼,可實現(xiàn)完備的通信功能。(3)RS485總線網絡采用雙絞線作為介質,具有較強的屏蔽能力,同時采用差分式輸出,可有效抵抗外界干擾,由于具有較大的電壓范圍,可實現(xiàn)長距離通信而不會過度衰減,是工
36、業(yè)應用中已發(fā)展成熟的標準網絡設施。第4章系統(tǒng)設計4.1 設計指導思想和原則4.1.1 指導思想在系統(tǒng)的設計中主要考慮其標準性、實用性、通用性和穩(wěn)定性,具體闡述如下:(1)考慮到標準性及實用性,本設計采用通用的RS485接口及免費、開放且被廣泛使用的MODBUS協(xié)議,整個系統(tǒng)可直接與現(xiàn)有設備整合而無需添加附加設備或額外開發(fā)成本,并可以滿足多數(shù)工業(yè)控制、傳感器數(shù)據(jù)采集等應用需求。(2)系統(tǒng)采用模塊化設計,除在本項目的光伏匯流器通信模塊外,也可在稍作修改之后作為其他項目的通信模塊使用,具有一定的通用性。(3)可采用差分式接收的RS485規(guī)范,軟件中使用CRC循環(huán)冗余校驗,有相當強的抗干擾能力和檢錯能
37、力,保證了系統(tǒng)的穩(wěn)定性。4.1.2系統(tǒng)設計原則在本設計中因應用的需求主要考慮其標準性和規(guī)范性、完備性、實用性和穩(wěn)定性,具體闡述如下:(1)規(guī)范性原則本設計采用通用的RS485接口及免費、開放且被廣泛使用的MODBUS協(xié)議,整個系統(tǒng)可直接與現(xiàn)有設備整合而無需添加附加設備或額外開發(fā)成本,并可以滿足多數(shù)工業(yè)控制、傳感器數(shù)據(jù)采集等應用需求。(2)完備性原則在設計中實現(xiàn)了01H、02H、03H、05H等功能碼,可實現(xiàn)任意數(shù)據(jù)和指令的傳輸,可滿足絕大部分通信需求。(3)實用性原則采用模塊化設計,可復用于其他項目中,并且由于接口標準協(xié)議通用,故具有較強的實用性。(4)穩(wěn)定性原則信號采用差分式接收的RS485
38、規(guī)范,軟件中使用CRC循環(huán)冗余校驗,有相當強的抗干擾能力和檢錯能力,保證了系統(tǒng)的穩(wěn)定性。4.2 構架概述考慮到工業(yè)自動化控制、傳感網絡數(shù)據(jù)處理及其他主-從式分布處理的應用需求,本設計采用PC上位機作為主機,單片機實現(xiàn)的下位機作為從機的體系結構,這樣設計的優(yōu)點是:(1)作為主機的PC機具有計算性能強、存儲空間大、具有穩(wěn)定的電源、可與互聯(lián)網相對快捷地連接起來,可將下位機上傳的數(shù)據(jù)進行整合處理;(2)作為從機的單片機價格低廉、功耗較低,方便部署在各種環(huán)境下;(3)在MODBUS協(xié)議之上還可以加入TCP協(xié)議族13,實現(xiàn)服務器/客戶端式的可靠連接,此時PC為客戶端,下位機為服務器,可實現(xiàn)數(shù)據(jù)的請求式訪問
39、,與本網絡結構相適應,可實現(xiàn)功能的擴展14。4.3 系統(tǒng)的軟件結構設計本系統(tǒng)軟件分為上位機應用程序和下位機處理程序,協(xié)調運轉以實現(xiàn)數(shù)據(jù)傳送和指令發(fā)送的功能。由于采用查詢-應答方式進行通信,下位機使用中斷方式接收指令,而中斷處理程序盡可能短以防止碰撞的發(fā)生,通過修改標志位的方式處理中斷。上位機則使用MFC框架編寫,調用Windows API進行數(shù)據(jù)傳輸。該系統(tǒng)是太陽能光伏匯流器的一部分,用于將數(shù)據(jù)采集電路收集的電流數(shù)據(jù)傳輸至PC端,重點在于通信協(xié)議的設計與實現(xiàn)。在通信協(xié)議的基礎上可通過對IO端口和寄存器的讀寫達到對下位機數(shù)據(jù)的讀取和IO控制的功能。主要邏輯控制由上位機實現(xiàn),下位機負責控制與數(shù)據(jù)采
40、集功能的實現(xiàn)。通信流程如圖4.1所示。圖4.1 通信流程4.4 系統(tǒng)硬件結構設計CPU驅動電路包括22.1184MHz晶振作為時鐘源,5V電壓供電,CAT810L提供復位信號。電源由外部5V穩(wěn)壓電源提供,由于交流轉直流需要變壓器-整流穩(wěn)壓或開關電源等設備,提高了成本。且本設計是整個太陽能光伏電池控制系統(tǒng)中的一部分,由于系統(tǒng)已存在統(tǒng)一的電源模塊,單獨添加電源并不合理,故采用外部電源輸入的設計,由于STC12C5A32AD適應電壓范圍較大,且工作穩(wěn)定,除此之外并無電壓敏感元件,故無需添加穩(wěn)壓元件即可保證電路正常工作。具體電路圖如圖4.2所示。圖4.2時鐘與復位電路CAT810L是復位芯片,用于在上
41、電/掉電時提供復位信號,相比簡單的阻容復位能夠提供更優(yōu)秀的波形,工作相對穩(wěn)定。上電/掉電復位是為了保證在電壓變化時能夠使單片機處于復位狀態(tài),避免出現(xiàn)因電源供應異常而導致的IO意外翻轉,在工業(yè)控制中具有重要意義。如果在控制中因電源故障或上電瞬間的不穩(wěn)定狀態(tài)導致IO異常是非常危險的,故采用復位芯片進行控制,保證單片機在電源穩(wěn)定時才處于工作模式。雖然協(xié)議設計以RS485網為基礎,但在本項目中RS232串行接口更為合理,主要優(yōu)勢在于無需添加額外設備即可直接與PC相連接,在本項目的單從機的情況下采用RS232接口作為物理連接接口,既可與電腦串口直接相連,也可用于芯片程序的燒錄。15為了減少設計及應用成本
42、不再添加RS485端口芯片,因項目中只需要一臺從機,且RS485標準中的遠距離通信并無絕對必要。但可在本設計基礎上改為支持RS485網版本,協(xié)議的絕大部分架構不變,僅添加尋址功能即可,不影響協(xié)議有效性的驗證。串口芯片電路圖如圖4.3所示。圖4.3串口芯片由于控制的LED數(shù)量不多,故采用CPU的IO端口直接控制,無需添加額外的控制電路,在控制LED數(shù)量較多,IO資源不足的情況下可使用門電路或譯碼器等附加電路以擴展IO,如圖4.4,4.5,4.6所示。圖4.4 LED的控制圖4.5 LED的控制圖4.6 電路原理圖大連東軟信息學院畢業(yè)設計(論文)第5章系統(tǒng)實現(xiàn)5.1 軟件實現(xiàn) 5.1.1 下位機程
43、序設計下位機程序采用匯編語言編寫,本設計中采用的芯片為MCS51兼容機,與8051編程結構相同,指令集完全兼容,采用匯編語言可有效避免C語言中函數(shù)調用、變量存儲等編譯器相關部分的不可控性16,對于資源非常有限的51單片機具有很大意義,可防止溢出、覆蓋等情況發(fā)生。對于本通信協(xié)議來講匯編語言的結構也是符合自然思維邏輯的表達方式,例如對數(shù)據(jù)幀的填寫和對寄存器/IO接口的操作等17。MBCheckMasterFrame:;check master framemovdptr,#MbFrameRead;frame start;movr0,#RxdMaxLengthmova,r0;get frame len
44、gthmovr2,alcallMBCRC16CK;check CRCmova,r3orla,r4jzmbckmf1;ok branchretmbckmf1:lcallMBGetAddr;put address to DPTRmovb,dpl;save addrmovdptr,#MbFrameRead;frame start;movxa,dptr;get frame addresscjnea,b,mbckmf2;not march,branchincdptrmovxa,dptr;get mode codecjnea,#03h,mbckmf2;not rignht code branchincdp
45、tr;getfunction index of high bytemovxa,dptrjnzmbckmf2;invalid branchincdptrmovxa,dptr;get index bytemovb,aincdptrincdptrmovxa,dptr;get number of registerjzmbckmf2;movr6,axcha,b;A=Index CommandlcallMBSetFrame;B=number of registersmbckmf2:ret下位機程序采用監(jiān)聽方式,首先對收到的幀進行CRC校驗,不通過則不做反應拋棄該幀,之后對地址進行解析,如不是合法地址則返回
46、不做反應,如地址相符,則對功能碼進行解析并回應。下位機除主函數(shù)外還有CRC校驗函數(shù)、CRC生成函數(shù)、指令碼實現(xiàn)函數(shù)等。當上位機指令到來時,對應的功能碼實現(xiàn)函數(shù)將需要的數(shù)據(jù)封裝成幀,填入CRC校驗碼之后發(fā)送。由于設計需求,采用的RS232點對點通信無需編址尋址功能,在RS485網模式需添加相關代碼。5.1.2 PC程序功能設計上位機程序負責主要的邏輯控制,并實現(xiàn)對下位機的尋址(RS485網)、速率設定以及狀態(tài)檢測等功能。繼承關系如圖5.1所示。圖5.1 繼承關系圖上位機程序采用MFC框架,調用WinAPI進行數(shù)據(jù)通信。由于在設計的需求中下位機功能應當簡單以減小其實現(xiàn)成本且使其具有較寬泛的應用空間
47、,故較為復雜的邏輯控制均由上位機完成。其功能包括通信初始化、單次連接讀取數(shù)值、持續(xù)連接讀取數(shù)值和斷開連接。(1)通信初始化通信初始化主要為通信端口設置和通信速率選取以及對下位機的編址。在本項目中采用RS232接口,為點對點通信模式無需編址,但在RS485網絡中編址和尋址是必不可少的環(huán)節(jié)。485網下位機采用物理撥碼開關編碼以及燒錄程序時預編碼等方式對下位機的地址進行設定,其中撥碼開關較為常見。(2)單次連接單次連接中獲得數(shù)據(jù)的流程與第四章敘述相近,其數(shù)據(jù)幀結構為從機地址(在本設計中因RS232為點對點模型而無需添加)、功能碼、起始地址和校驗碼為獲取從機中存儲的電流數(shù)據(jù),應采用05H功能碼,在填寫
48、對應數(shù)據(jù)的起始地址之后由CRC校驗碼生成函數(shù)填寫校驗位,向下位機發(fā)送指令讀取由下位機數(shù)據(jù)采集板(不在本設計范圍內,為工程另一組件)獲得的電流值。每次連接持續(xù)15秒,以獲取較為穩(wěn)定的數(shù)值同時利于觀測。(3)持續(xù)連接持續(xù)連接為持續(xù)調用連接過程,不斷獲取各單元電流值以達到長期實時監(jiān)控太陽能電池板輸出電流的目的,以滿足匯流器的工作需求。其原理與單次連接相同而不再贅述。PC程序主界面如圖 5.2所示。圖5.2 PC程序主界面5.1.3 PC程序邏輯實現(xiàn)本協(xié)議采用MFC的CFormView基類實現(xiàn),程序分為文檔、界面和主程序三部分,項目源代碼文件如圖5.3所示,文檔和界面部分較小,本設計中需要存儲的數(shù)據(jù)結
49、構較簡單,重點在于主程序的設計。圖5.3 項目源代碼文件主程序為Solar.cpp,根據(jù)MFC框架結構,定義并實現(xiàn)CSolarApp類作為應用類,在系統(tǒng)中創(chuàng)建唯一的實例extern CSolarApp theApp作為進程實體。在該類中定義了基本操作的接口,如設置端口/速率、打開/關閉端口、讀/寫緩沖區(qū)等。為了封裝以隱藏實現(xiàn),操作的實現(xiàn)在其他源代碼文件中,如Crc.cpp為CRC校驗的實現(xiàn)等,通過調用其接口來使用這些方法。由于篇幅所限不再對其他部分做過多敘述,主要介紹網絡連接的實例以簡述程序的工作流程。public:CNetLink(int nPort, int baud_rate);virt
50、ual CNetLink();public:void SetPort(int nPort);void SetRate(int baud_rate);bool IsOpened() return m_bPortOpened; 以上部分為網絡連接實例class CNetLink的接口,用于初始化及讀取/修改實例的參數(shù)等,基本的網絡操作如打開連接、設置端口、設置速率等均在該類中實現(xiàn)。public:CNetMaster();virtual CNetMaster();public:bool WriteOnlineRead();int TickWriting(unsigned char* pBuf, bo
51、ol bRepeat = false);/ RETURN length of buffer data, 0= nothing to writeunsigned char TickReading(unsigned char* pBuf, int nLen);int GetEndUploadSegment(unsigned char* pData, unsigned char* pBuf, int nLen);NetMaster類用于控制網絡連接的邏輯,通過調用網絡連接實例的方法實現(xiàn)對下位機的邏輯控制,將需要的指令傳輸至下位機。最終由主進程調用這些接口實現(xiàn)項目功能。整個項目均采用面向對象的接口與實
52、現(xiàn)分離的思想,同時貫徹了OSI模型的理念,數(shù)據(jù)流在不同層次間傳遞而無層間耦合,符合最初的設計思路。實現(xiàn)了一個規(guī)范而具有實用價值的通信模型。5.2 硬件實現(xiàn) 5.2.1 電路圖設計本設計中采用雙層印刷板,價格較四層板更為低廉,但布線需要一定技巧來彌補雙層板的不足。由于采用的STC12C5A32AD芯片引腳數(shù)較多,故設計時需考慮各個功能塊的拓撲連通性,以防止無法布通的情況發(fā)生。同時,為了保證電路的穩(wěn)定性,采用了背面大面積接地以降低地線阻抗,并提供相對穩(wěn)定的零電位以防意外翻轉的發(fā)生。而電源線分布于電路板邊緣以防止對信號線的干擾,并且在滿足阻抗合理的前提下盡可能細以避免電流突變而產生的電磁波對電路的影
53、響。(1)封裝繪制繪圖采用Altium Designer 2014軟件,畫好原理圖之后開始繪制最終的電路圖,第一步工作是繪制封裝。本設計中元件種類不多,大部分是二極管和電阻,無需另外繪制。在芯片的datasheet中找到封裝尺寸,主要參數(shù)是引腳定義、焊盤大小、引腳間距和邊框尺寸幾項,之后在AD14中創(chuàng)建封裝,對相關數(shù)值進行填寫即可。(2)初步布線根據(jù)最初的設計思路,采用背面盡量不走線而將剩余部分作為地來保證良好的屏蔽性能和更低的阻抗,同時避免了地線形成環(huán)路而導致的不穩(wěn)定,符合布線的單點接地原則。每個器件的電源處應當加入去耦電容以消除電源的高頻噪聲干擾,并保證電壓的相對穩(wěn)定,起到緩沖的作用18。
54、首先是元件的擺放位置,為保證可順利連通,需按照功能將元器件分組,具有相近功能的元件其線路也較為一致,可將其整體看作是單端有源元件,用這樣的思路先畫出近似的拓撲圖,保證連通性。在畫出拓撲圖之后先進行電源線的排布,電源線可走在電路板的邊緣,保證各個元件較為容易的連接到電源上。此外每個芯片都需要去耦電容,起到濾波和穩(wěn)壓的作用。去除高頻雜波可防止芯片出現(xiàn)故障,減少發(fā)熱,因為高頻雜波如RF可通過結電容造成電平不穩(wěn)定的故障。特別是在邏輯門較多的情況下,由于各個門的狀態(tài)在時鐘周期內不可能完全一致,有可能導致電源噪聲在電平不穩(wěn)定的區(qū)域內被放大,導致意外的翻轉,甚至會改變寄存器的數(shù)值,對芯片工作產生嚴重影響19
55、。此外,數(shù)字電路主要通過高低電平轉換來工作,如處理器速度較快,則電平上升速度可能很快,故從整個工作周期內看芯片功耗很低,但是從一個時鐘周期內看對瞬時電流需求很大,需要電源阻抗非常小。但直接獲得如此小的電源阻抗是非常困難的,尤其是對于數(shù)字電路常用的開關電源來講。所以添加去耦電容可以有效降低阻抗,因其儲能的特性可以瞬時提供較大電流,故可以在短時間內大幅降低對電源的需求,而通過電容進行供電。對于濾波的需求,需要將電容放置在距離芯片盡可能近的地方,以保證濾波效果。在電源布通之后是信號線的布置,信號線以布通為目的,根據(jù)之前的拓撲連通圖可較易布通,主要注意的是盡量在電路板的正面布信號線,在不得不繞行的地方
56、再布在背面,以保證背面有盡可能大的面積布地線。在電源、信號線均布通的情況下將背面剩余部分均用銅板填充,并注意是否有地線“環(huán)”的存在,以符合單點接地原則20,防止環(huán)中電平的異常變化,并且大面積敷銅可提高屏蔽性能,減少地線阻抗,降低輻射以提升穩(wěn)定性。(3)最終調整在連通線路之后對電路進行最后調整,檢查信號線的拐點是否為120度,因直角拐點相當于線圈,具有一定電感,阻礙信號傳輸,并且拐點的尖角處電流密度很大,相當于天線,在該點附近有很強的輻射,故應避免尖銳拐點防止干擾其他線路及影響該線路本身的信號質量。此外檢查元件是否互相阻擋,雖然有繪制好的封裝圖保證垂直方向投影不會相互覆蓋,但應當考慮元件的實際形
57、狀,例如接插件安裝線纜之后是否會被豎起的電容阻擋,以及撥動開關能否撥到等。最后再次檢查外型尺寸,確認PCB與設計相符,以及生產PCB的廠家是否支持對應的工藝,防止出現(xiàn)太過精細的過孔、太小的線寬線距等特殊工藝而帶來的無意義的附加成本。(4)總結按照原理圖進行有序的布線,采用標準的接插件以保證信號的穩(wěn)定并有利于安裝調試并減少可能出現(xiàn)的其他問題。電源部分考慮到由220V轉為5V所要考慮的如外殼接地和屏蔽等安全問題以及信號穩(wěn)定性、電路的復雜性等因素,采用了外部電源的設計,由整個系統(tǒng)的電源模塊統(tǒng)一解決。測試中可使用AC-DC穩(wěn)壓電源、USB標準電源或成品開關電源等,而無需搭建橋式整流直流穩(wěn)壓或開關電源電
58、路,以節(jié)省設計和制作成本。本電路設計合理,考慮充分,可在實際工程中直接使用。PCB最終設計圖如圖5.3所示。圖5.3 PCB最終設計圖5.2.2 電路組裝調試在繪制好電路圖之后交由工廠印制PCB,采購相應元件即可組裝焊接。印制板的焊接相對簡單,省去了采用洞洞板的走線、修板的步驟,尤其是對于單片機這樣線路較為復雜的情況。相對較為復雜的是貼片元件和芯片的焊接。由于元件較小,一般采用的是貼片機加回流焊焊接,精度和良品率均可得到保證。手工焊接除烙鐵外還需要鑷子吸錫器等工具輔助。對于較小的貼片元件,將少量焊錫點在一個焊盤上,用烙鐵加熱元件一角,先固定一個引腳,再焊接另一腳。注意焊接時先將焊盤和引腳均加熱
59、至可沾錫,防止虛焊的發(fā)生。芯片采用拖焊的技術,將焊錫聚集在一點上,利用重力及烙鐵的拖動使焊錫流動,同時由于液態(tài)金屬的浸潤的特性使每個引腳均均勻沾錫,是焊接具有較多引腳元件的必要技術,可大幅提升效率并防止長時間焊接導致芯片或焊盤因過熱而損壞。焊接時注意從復雜元件到簡單元件,從小元件到大元件的順序,防止元件相互阻擋,焊接完成后用萬用表檢查連通性。注意在整個過程中嚴格防止靜電,因芯片采用的MOS管柵極極易被擊穿,這樣的損傷對電路是致命而無法修復的,應使用防靜電手環(huán)。最后如檢查出有虛焊點要重新點錫。焊接實物圖如圖5.4所示。圖5.4 焊接實物圖大連東軟信息學院畢業(yè)設計(論文)第6章系統(tǒng)測試本設計是太陽
60、能光伏匯流箱的一部分,負責監(jiān)控匯流箱狀態(tài)并發(fā)回數(shù)據(jù),方便用戶實時監(jiān)控其工作狀態(tài),保證太陽能電池組正常高效工作。由于通信過程具有一定程度的不可預知性,并且在多終端的狀況下可能發(fā)生未知的異常行為,故采用多種測試手段驗證其可靠性。6.1 測試方案及測試用例 6.1.1冒煙測試方案:由于采用PC-下位機系統(tǒng),為了測試兩部分均能正常工作,采用冒煙測試的方法分別驗證其獨立工作及協(xié)同工作的可靠性。首先對下位機進行連通性測試,避免出現(xiàn)短路和虛焊的情況。之后在測量VCC、GND間電阻,保證不會發(fā)生通電即燒的情況,再對電路通電,用萬用表測試其各個關鍵節(jié)點的電壓,保證單片機得到正常供電。之后對上位機軟件各個功能塊進
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 22210-2024肉與肉制品感官評定規(guī)范
- JJG(煙草)24-2010煙絲彈性測定儀檢定規(guī)程
- 2025初三升高一數(shù)學暑假銜接講義25講含答案(必修一內容)4.1 指數(shù)函數(shù)
- 阿司匹林腸溶片崩解時限檢查授課侯秋苑藥物分析80課件
- 考研復習-風景園林基礎考研試題【a卷】附答案詳解
- 風景園林基礎考研資料試題及參考答案詳解【輕巧奪冠】
- 《風景園林招投標與概預算》試題A附參考答案詳解(達標題)
- 2025-2026年高校教師資格證之《高等教育法規(guī)》通關題庫含答案詳解(奪分金卷)
- 2023國家能源投資集團有限責任公司第一批社會招聘筆試備考題庫含答案詳解(培優(yōu)b卷)
- 2025年黑龍江省五常市輔警招聘考試試題題庫含答案詳解(基礎題)
- 香煙采購合同協(xié)議
- 郵政面試試題及答案
- 階梯式早期活動在ICU機械通氣患者中的應用 課件
- 2025年CCAA《管理體系認證基礎》考前必練題庫500題(含真題、重點題)
- 初三英文補考試卷及答案
- 強化學習中并行采樣策略研究-全面剖析
- 外墻淋水試驗專項施工方案
- 川省基層工會經費收支管理實施辦法
- 醫(yī)院生物安全管理制度
- 輸血制度和流程
- 密封材料質量標準-深度研究
評論
0/150
提交評論