




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、模擬I2C總線多主通信研究與軟件設計 技術分類: 通信與網絡 微處理器與DSP 來源:單片機與嵌入式系統應用/西安電子科技大學 鄭旭陽 李兵兵 黃新平 發表時間:2007-01-20 I2C總線(Inter IC BUS)是Philips公司推出的雙向兩線串行通信標準。由于它具有接口少、通信效率高等優點,現已得到廣泛的應用13。它除了可以進行簡單的單主節點通信外,還可以應用在多主節點的通信系統中。在多主節點通信系統中,如果兩個或者更多的主節點同時啟動數據傳輸,總線具有沖突檢測和仲裁功能,保證通信正常進行并防止數據破壞。現在許多微控制器(MCU)都
2、具有I2C總線接口,能方便地進行I2C總線設計。對于沒有I2C總線接口的MCU,可以采用兩條I/O接口線進行模擬2,3。目前,一些介紹模擬I2C的資料主要講的是在單主節點系統中進行的通信,這使得模擬I2C總線的應用具有一定的局限性。本文根據總線仲裁的思想,提出一種多主節點通信的思想及實現流程。1 I2C總線系統簡介13I2C總線系統是由SCL(串行時鐘)和SDA(串行數據)兩根總線構成的。該總線有嚴格的時序要求,總線工作時,由串行時鐘線SCL傳送時鐘脈沖,由串行數據線SDA傳送數據。總線協議規定,各主節點進行通信時都要有起始、結束、發送數據和應答信號。這些信號都是通信 過程中的基本
3、單元。總線傳送的每1幀數據均是1個字節,每當發送完1個字節后,接收節點就相應給一應答信號。協議規定,在啟動總線后的第1個字節的高7位是對從節點的尋址地址,第8位為方向位(“0”表示主節點對從節點的寫操作;“1”表示主節點對從節點的讀操作),其余的字節為操作數據。圖1列出I2C總線上幾個基本信號的時序。圖1中包括起始信號、停止信號、應答信號、非應答信號以及傳輸數據“0”和數據“1”的時序。起始信號就是在SCL線為高時SDA線從高變化到低;停止信號就是在SCL線為高時SDA線從低變化到高;應答信號是在SCL為高時SDA為低;非應答信號相反,是在SCL為高時SDA為高。傳輸數據“0”和數據“1”與發
4、送應答位和非應答位時序圖是相同的。 圖1 I2C總線上基本信號的時序圖2表示了一個完整的數據傳送過程。在I2C總線發送起始信號后,發送從機的7位尋址地址和1位表示這次操
5、作性質的讀寫位,在有應答信號后開始傳送數據,直到發送停止信號。數據是以字節為單位的。發送節點每發送1個字節就要檢測SDA線上有沒有收到應答信號,有則繼續發送,否則將停止發送數據。 圖2 一次完整的數據傳送
6、過程2 I2C總線的仲裁在多主的通信系統中。總線上有多個節點,它們都有自己的尋址地址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點發送控制字節和傳送數據。但是如果有兩個或兩個以上的節點都向總線上發送啟動信號并開始傳送數據,這樣就形成了沖突。要解決這種沖突,就要進行仲裁的判決,這就是I2C總線上的仲裁。I2C總線上的仲裁分兩部分:SCL線的同步和SDA線的仲裁。SCL同步是由于總線具有線“與”的邏輯功能,即只要有一個節點發送低電平時,總線上就表現為低電平。當所有的節點都發送高電平時,總線才能表現為高電平。正是由于線“與”邏輯功能的原理,當多個節點同時發送時鐘信號
7、時,在總線上表現的是統一的時鐘信號。這就是SCL的同步原理。SDA線的仲裁也是建立在總線具有線“與”邏輯功能的原理上的。節點在發送1位數據后,比較總線上所呈現的數據與自己發送的是否一致。是,繼續發送;否則,退出競爭。圖3中給出了兩個節點在總線上的仲裁過程。SDA線的仲裁可以保證I2C總線系統在多個主節點同時企圖控制總線時通信正常進行并且數據不丟失。總線系統通過仲裁只允許一個主節點可以繼續占據總線1。圖3是以兩個節點為例的仲裁過程。DATA1和DATA2分別是主節點向總線所發送的數據信號,SDA為總線上所呈現的數據信號,SCL是總線上所呈現的時鐘信號。當主節點1、2同時發送起始信號時,兩個主節點
8、都發送了高電平信號。這時總線上呈現的信號為高電平,兩個主節點都檢測到總線上的信號與自己發送的信號相同,繼續發送數據。第2個時鐘周期,2個主節點都發送低電平信號,在總線上呈現的信號為低電平,仍繼續發送數據。在第3個時鐘周期,主節點1發送高電平信號,而主節點2發送低電平信號。根據總線的線“與”的邏輯功能,總線上的信號為低電平,這時主節點1檢測到總線上的數據和自己所發送的數據不一樣,就斷開數據的輸出級,轉為從機接收狀態。這樣主節點2就贏得了總線,而且數據沒有丟失,即總線的數據與主節點2所發送的數據一樣,而主節點1在轉為從節點后繼續接收數據,同樣也沒有丟掉SDA線上的數據。因此在仲裁過程中數據沒有丟失
9、。 & nbsp; 圖3 兩個主節點的仲裁過程3 多主通信的原理及其實現流程多主通信就是在總線上有多個節點。這些節點既可以作為主節點訪問其他的節點,也可以作為從節點被其他節點訪問。當有多個節點同時企圖占用總線時,就需要總線的仲裁。對于模擬I2C總線系統,怎
10、樣實現總線的仲裁是現在研究模擬I2C總線系統的難點。文獻4提出在系統中增加1根BUSY線,在占用總線之前先檢測BUSY線,看總線是否被占用。若總線空閑,則設置BUSY線并向總線上傳送數據;否則,接收數據,直到總線空閑時才占有總線。這種實現多主通信的方法有兩個缺點: 因為I2C最大的優點就是接口少、效率高,這樣做不僅增加了使用資源而且減少了I2C總線的優勢; 當主節點數比較多時,等待時間比較長,效率不高。本設計根據總線的仲裁原理,提出一種基于延時比較的仲裁方法。當主節點想要占用總線時,先檢測總線上是否空閑,如果總線是空閑的就發送數據。在發送數據的同時,將總線上的數據接收并與發送的數據進行比較。如
11、果不同,說明總線上同時還存在其他節點,于是就退出;否則,一直到發送完數據。這種方法既體現了I2C總線的高效性,同時還具有良好的擴展性。
12、; 圖4 多主通信流程 圖4給出了基于延時比較的多主通信流程,其中MCU作為從節點部分的流程在圖5中給出。在節點發送起始信號之前先要檢測一下總線上是否為空閑狀態(BUSY是否為0)。這里使用的檢測方法是,持續檢測一段時間看總線上的電平是否一直為高,若是說明總線上為閑狀態,否則說明有其他的節點正在使用總線,要等一段時間再發送。當總線空閑時,發送起始信號,接著發送要訪問的從節點的地址字節。每發送1位數據就接收比較1次,看發送和接收的是否一致,若是則繼續,否則跳出到從節點的接收狀態。如果沒有產生沖突,MCU作為主節點繼續發送數據,直到任務結束,然后發送停止信號并返
13、回。如果數據不一樣,MCU將跳轉到從節點狀態。由于在跳轉到從節點接收狀態的過程中累加器(ACC)和工作寄存器(Ri)的數據沒有發生變化,所以數據沒有丟失,作為從節點可以繼續接收總線上的數據。這樣整個通信的過程沒有中斷,數據也沒有丟失。
14、60; 圖5 從節點部分的流程圖5給出了從節點的流程。進入從節點時,要將BUSY置為高,說明MCU現在正在工作,不能完成其他的任務。在MCU作為從節點完成接收任務后,要將BUSY置為低。MCU在接收到尋址字節后與自己的地址字節進行比較。如果是訪問自己的就進入到下面的接收程序,否則跳出。在訪問自己的時候,還要判斷主節點是讀取數據還是寫數據,以便進入相應的程序。在寫字節的子程序中,從節點每發送1個字節的數據后都要察看是否有應答信號(ACK),有則說明數據接收到了;否則要跳出等待,重新發送。在
15、讀字節的子程序中,每接收1個字節的數據就要發送1個應答信號(ACK),以示接收正常,否則主節點將停止繼續發送。在現有的資料中,關于從節點的原理和源代碼比較少,這里給出作為從節點時寫字節子程序的源代碼。由于篇幅有限其他的子程序沒有列出。 4 部分源代碼本節是在MCU多主通信中的部分源代碼。多主通信的實現中有幾個難點和重點。一是在作為主節點時的寫字節子程序,里面要包括發送的每位數據和總線的數據進行比較并做出判斷。如果數據不同,要跳出并進入從節點的狀態。由于子程序返回主程序時改變的只是PC的值而累加器(ACC)和工作寄存器(Ri)里面的值是不變的,因此MCU進入從機狀態后繼續接收總線剩下
16、的數據,這樣總線的數據并沒有丟失。二是作為 從節點時的寫字節的子程序。由于時鐘線是由主節點的MCU控制的,所以怎樣根據SCL線來讀取SDA線的數據是其中的一個難點。三是在具有子地址的從節點關于是寫字節還是讀字節時的判斷。如果是寫字節時主節點會給出新的起始信號,并再次發送從節點的地址數據。這時從節點需要做出判斷是讀取數據還是寫數據,并進入相應的子程序。這里給出以上三個重點和難點的子程序的源代碼,以供讀者參考。這些源代碼經實踐證明都是正確的。主節點的寫字節子程序: 其中的NOP可根據時鐘的快慢自己加減WRBYTE:
17、MOVR0,#08H CLRBUSY;將BUSY值清零WLP: RLCA;取數據位JC WR1 SJMPWR0;判斷數據位WLP1:DJNZR0,WLP NOPOUT1:RETWR1: SETBSDA;發送1 NOP SETB SCL MOVC,SDA;判斷是否與發送的數據相同 JC GOON SETB BUSY AJMP OUT1GOON:NOP NOP NOP CLRSCL SJMPWLP1WR0: CLRSDA;發送0 NOP SCL NOP NOP NOP NOP NOP CLR SCLSJMP WLP1從節點的寫字節子程序(返回為ACK):SWRBYTE:MOV R0,#08HWAG
18、AIN: RRC AMOVB,#37HWWAIT1: JBSCL,WWAIT1;等待SCL為低JCWR1;判斷是發送“1”還是發送“0”SETBSDA;發送“1”AJMP COMWR1:CLR SDA;發送“0”COM:DJNZR0,WWAIT2;判斷是否發送完畢WWAIT3: JNBSCL,WWAIT3;發送完畢等待應答信號WWAIT4: JBSCL,WWAIT4WWAIT5: JNBSCL,WWAIT5CLRACKJB SDA,ST0SETBACKST0:RET;返回WWAIT2: JNBSCL,WWAIT2;等待SCL為高SJMPWAGAIN從節點的讀字節同時判斷是否有起始信號的子程序。
19、如果有起始信號,則轉為寫字節子程序:SRDBYTE:MOV R0,#08HSETB20H;設置標志位判斷是讀還是寫SETBSDA;釋放總線RWAITJ: JNBSCL,RWAITJ;等待SCL為高MOVC,SDA;從總線上讀取數據RRC A;存入累計器DECR0MOVC,ACC.7;判斷是否為起始信號JNCRWAITJ1;為低繼續讀取數據REWAIT: JNBSCL,RWAITJ1;開始判斷是否為起始信號JB SDA,REWAITCLR20H;是,則清標志位并返回AJMPSjRDOUTRWAITJ1:JBSCL,RWAITJ1;等待SCL為低RWAITJ3:JNBSCL,RWAITJ3;等待S
20、CL為高MOV C,SDARRCADJNZR0,RWAITJ2SjRDOUT:RETRWAITJ2:JBSCL,RWAITJ2;等待SCL為低繼續讀數據SJMPRWAITJ3 5 總結根據總線協議中的仲裁原理,提出的基于延時比較的模擬I2C多主通信的方法,不僅能夠體現了I2C總線的高效性,而且還具有良好的擴展性。它使普通不具有I2C接口的MCU可以應用在多主通信的系統中,既增加了普通MCU的使用范圍,又突破了模擬I2C總線的應用局限性,為I2C總線的推廣起到了積極的作用。參考文獻1 The I2CBus Specification, Version 2.1. Janua
21、ry, 2000. 2 張昆,邱揚,劉浩. 基于CPLD的系統中I2C總線的設計. 電子技術應用,2003(11)3 何立民. I2C總線應用系統設計. 北京:北京航空航天大學出版社,1995GPRS無線通信系統中的MSC1210應用設計 技術分類: 通信與網絡 來源:電子元器件應用 發表時間:2006-12-05 引言 近年來,通信技術和網絡技術的迅速發展,特別是無線通信技術的發展,使得電力系統的自動化程度進一步提高,GSM網絡出現后,技術人員很快把GSM模塊嵌入到各種儀器儀表中(如多功能電能表、故障測錄儀、抄表系統和用電負荷監控等
22、),從而使這些儀器儀表具有遠程通信功能。GPRS是在現有GSM系統上發展出來的一種新的數據承載業務,支持TCP/IP協議,可以與分組數據網(Internet等)直接互通。GPRS無線傳輸系統的應用范圍非常廣泛。幾乎可以涵蓋所有的中低業務和低速率的數據傳輸,尤其適合突發的小流量數據傳輸業務。本文設計的GPRS無線通信模塊,內嵌入了TCP/IP協議,采用工業級的GPRS模塊,適用于單片機數據采集傳輸系統沒有TCP/IP協議棧,但使用串口通信的情況。GPRS通信原理及應用特點 GPRS簡介GPRS是通用無線分組業務(General Pacpet Radio System)的縮寫,是介于第二代和第三代
23、之間的一種通信技術,通常稱為2.5G。GPRS采用與GSM相同的頻段、頻帶寬度、突發結構、無線調制標準、調頻規則以及相同的TD-MA幀結構。因此,在G SM系統的基礎上構建GPRS系統時,GSM系統的絕大部分部件都不需要作硬件改動,只需要作軟件升級,有了GPRS,用戶的呼叫建立時間大大縮短,幾乎可以做到“永遠在線”。此外,GPRS是以營運商傳輸的數據量而不是連接時間為基準來計費,從而令每個用戶的服務成本更低。 基本工作原理GPRS是在原有的基于電路交換(CSD)方式的GSM網絡上引入兩個新的網絡節點:GPRS服務支持節點(SG-SN)和網關支持節點(GGSN)。SGSN和MSC在同一等級水平,
24、并跟蹤單個MS的存儲單元實現安全功能和接入控制,并通過幀中繼連接到基站系統,GGSN支持與外部分組交換網的互通,并經由基于IP的GPRS骨干網和SGSN連通。圖1給出了GPRS與Internet進行連接的原理框圖。
25、GPRS終端通過接口從客戶系統取得數據,處理后的GPRS分組數據發送到GSM基站,分組數據經SGSN封裝后,SGSN通過GPRS骨干網與網關支持接點GGSN進行通信,GGSN對分組數據進行相應的處理,再發送到目的網絡,如Internet或X.25網絡。若分組數據是發送到另一個GPRS終端,則一般將數據由GPRS骨干網發送到SGSN,再經BSS發送到GPRS終端。GPRS模塊的硬件設計嵌入式GPRS無線通信模塊主要由嵌入TCP/IP的單片機(MSC1210Y5)、GPRS模塊、SIM卡座、外部接口和擴展數據存儲器等部分組成。圖2是其系統硬件框圖。 &
26、#160; MSC1210主要用于控制GPRS模塊的信息接收和發送,并通過標準RS232串口和外部控制器(比如數據采集端)進行數據通信,同時用軟件實現中斷,以完成數據轉發。 單片機模塊單片機采用美國德州儀器公司最新推出的基于8051內核的MCS1210Y5,該芯片具有很強的數據處理能力,時鐘頻率為33MHz,指令運行速度實際上與運行在99MHz時
27、鐘頻率下的標準8051內核相當,32KB Flash程序存儲器,256B內部RAM和1024B片上SRAM,2KB啟動ROM,支持串行和并行的在系統編程,雙數據指針DPTR0和DPTR1可加快數據塊的移動速度,其主要實現過程如下:(1)通過AT指令初始化GPRS無線模塊,使之附著在GPRS網絡上,以獲得網絡運營商動態分配的GPRS終端IP地址,并與目的終端建立連接。(2)通過串口0擴展MAX232標準串口和外部控制器(例如數據采集端)連接,外部控制器端接出標準串口,按照約好的協議可很容易利用本設計的控制器進行通信。(3)復用P1.2和P1.3,也就是串口1分別和GPRS模塊的TXD0和RXD0
28、連接,P1口的其他6個端口分別接到GPRS模塊對應的剩余RS232通信口。通過軟件置位完成對MC35的初始化和控制GPRS模塊的收發數據。 擴展數據存儲器MSC1210的Flash存儲器可全部作為Flash程序存儲器,也可以全部作為數據Flash程序,因為要嵌入實時操作系統和網絡協議,需要一定的空間,因此將其全部用作程序存儲器,而通過74HC573作為地址鎖存器,擴展6264作為外部數據存儲器,8KB的數據存儲空間足夠程序正常運行了,圖3所示是MSC1210與數據存儲器之間的硬件連接圖。
29、 GPRS無線數傳模塊GPRS無線模塊作為終端的無線收發模塊,把從單片機發送過來的IP包或基站轉來得的分組數據進行相應的處理后再轉發。GPRS模塊采用德國Simens公司生產的MC35模塊。MC35模塊主要由射頻天線,內部Flash、 SRAM、GSM基帶處理器、匹配電源和一個40腳的ZIF插座組成。GSM基帶處理器是核心部件,其作用相當于一個協議處理器,用來處理外部系
30、統通過串口發送AT指令,射頻天線部分主要實現信號的調制和解調,以及外部射頻信號與內部基帶處理器之間的信號轉換,匹配電源為處理器基射頻部分提供所需的電源。MC35的外圍電路如圖4所示。 圖中,由AS2815將外部電壓轉換成3.3V工作電壓。系統中的啟動電路由三極管和上電復位電路組成,模塊上電后,為使之正常工作,必須在15腳加至少100ms的低電平信號,啟動后,15腳信號應保持高電平。MC35在ZIF連接器上為SIM卡接口預留的引腳數為6個,要注意的是,CCIN引腳用來檢測SIM卡座是否插有SIM卡,當插入SIM卡,該引腳置為高電平時,系統方可進入正
31、常工作。SYNC引腳有兩種工作模式:一種是指示發射狀態時的功率增長情況,另一種是指示MC35的工組狀態,本設計中使用后一種模式,LED熄滅時,表明MC35處于關閉或睡眠狀態;當LED為600ms亮/600ms熄時,表明SIM卡沒有插入或MC35正在進行網絡登陸;當LED為75ms為亮/3s熄時,表明MC35已登陸進入網絡,處于待機狀態。單片機通信程序設計該程序軟件中的所有代碼都用C語言編寫,在Keil環境中編譯,Keil是Keil Software公司為8051及其兼容產品提供的專門開發工具,它支持在系統調試,Keil中C51譯碼器很好地集成了RTX多任務實時操作系統,編寫程序時,需在源代碼頭
32、加入“#incluede rtx51.h”。所有代碼調試后經由TI Downloader下載到存儲器中。目前,絕大多數基于GPRS網絡應用系統所使用的GPRS模塊不支持TCP/IP協議,也就是說,要想工作在相同的網絡層面上,其內部傳輸的數據必須都要采用相同的協議,所以除了利用GPRS模塊的功能外,必須在單片機系統中嵌入按TCP/IP和PPP協議標準編寫的程序,從而使設計的終端設備能夠方便的應用GPRS數據分組業務。 TCP/IP協議的嵌入有很多種方法可以完成協議轉換,本設計利用在嵌入式實時操作系統RTX51中移植部分IP和PPP協議來增強系統的可擴展性和產品開發的可延續性。TCP/IP協議是一
33、個標準協議套件,可以用分層模型來描述,數據打包處理數據時,每一層把自己的信息添加到一個數據頭中,而這個數據頭又被下一層中的協議包裝到數據體中。數據解包處理程序接收到GPRS數據時,把相應的數據頭剝離,并把數據包的其余部分當做數據體對待。考慮到嵌入式系統的特點,本設計采用了系統開銷較小的IIP+UDP協議來實現GPRS通信,主機發送的UDP數據報文經GPRS通道傳送給GPRS通信模塊,GPRS通信模塊負責對數據報進行解析,解析后的數據按照一定的波特率串行傳送給用戶終端。 數據處理數據包在主機和GPRS服務器群中傳輸使用的是基于IP的分組,即所有的數據報文都要基于IP包,但明文傳送IP包不可取。故
34、一般使用PPP協議進行傳輸,模塊向網關發送PPP報文都會傳送到Internet網中相應的地址。而從Internet傳送過來的應答幀也同樣會根據IP地址傳送到GPRS模塊,從而實現采集數據和Internet網絡通過GPRS模塊的透明傳輸。要注意的是,GSM網絡無靜態IP地址,故其他通信設備不能向它提出建立連接請求,監控中心必須擁有一個固定的IP,以便監測終端可以在登陸GSM網絡后通過該IP找到監控中心,關于這一點,很容易解決,只需在電信申請相應的服務就可以了。GPRS模塊登陸上GSM網絡后,自動連接到數據中心,向數據中心報告其IP地址,并保持和維護數據鏈路的連接,GPRS監測鏈路的連接情況,一旦
35、發生異常,GPRS模塊自動重新建立鏈路,數據中心和GPRS模塊之間就可以通過I地址通過UDP/IP協議進行雙向通信,實現透明的可靠數據傳輸。上位機監控中心的設計監控中心的功能是實現GPRS信息的接收和保存,設計語言采用Microsoft公司的Visual C+編程語言,C+語言應用靈活,功能強大,并對網絡編程和數據庫有強大的支持。由于通過GPRS中心監控部分可以直接訪問互聯網,所以監控部分并不需要再設置GPRS模塊,中心只需通過中心軟件偵聽網絡,接收GPRS無線模塊傳來的UDP協議的IP包和發送上位機控制信息,以實現與GPRS終端的IP協議通信。接收到的信息要保存到中心的數據庫中,以備查歷史記
36、錄。數據庫采用Access,用VC編制的界面窗口能推動AD()訪問Access中的數據,也可通過Socket接收網絡終端信息。Socket接口是TCP/IP網絡的API,Socke t接口定義了許多函數和例程,程序員可以利用它來開發TCPIP網絡上的應用程序,VC中的MFC列提供了CAsyncSocket這樣一個套接字類,用它來實現Socket編程非常方便,本設計采用數據報文式的Socket,這是一種無連接的Socket,對應于無連接的UDP服務應用。CAsyncSocket使用DoCallBack函數來處理MFC消息,一個網絡事件發生時,DoCallBack函數按照網絡時間類型FD_READ
37、、FD_WRITE、FD_ACCEPT和FD_CON-NECT來分別調用OnReceive、OnSend、OnAccept和OnCon-nect函數,以驅動相應的事件,從而完成網絡數據通信。結束語本文采用嵌入式TCP/IP協議,通過高速8位單片機實現GPRS業務的數據傳輸功能,具有外圍電路少,電路簡單,系統成本低等優點,通過標準RS232串口和外部控制器連接,只需按照預先規定的協議就可互相通信,通用性較強,系統軟件均使用C語言編寫,稍加改動就可以在各種控制器上實現,可移植性也較強。基于GPRS的系統有有一定的缺點,例如,現在的GPRS網還不夠穩定,有丟包的現象,主控制器要實現IP協議,使用起來
38、比較復雜;上位機基于互聯網的解決方案保密性較差等,上述問題經過精細設計是可以避免和解決的,所以基于GPRS的設計仍具有無可比擬的優勢。基于GPRS的無線數據采集與傳輸終端 技術分類: 通信與網絡 來源:電子產品世界/ 作者:上海交通大學電子與信息工程學院 趙申 蔣鈴鴿 發表時間:2005-09-06 · 核心器件: MPC8xxCMS91 無線數據采集與傳輸的應用范圍非常廣,涉及行業有電力、水利、公安、交通、石油、安防和金融等。中國移動公司在2002年5月正式開通了通用分組無線
39、業務GPRS網絡。GPRS網絡支持TCPIP協議并且覆蓋面廣,比起使用短消息和超短波無線數傳電臺進行無線數據傳輸,GPRS無論在費用、可靠性和可實施性等方面都具有很大的優勢。 終端的系統組成 無線數據采集與傳輸終端的設計可以有兩套方案:第一套為“單片機GPRS調制解調器”,此方案雖然硬件成本較低,但功能比較有限,在協議的開發和支持上都有一定難度;第二套方案為“嵌入式CPUGPRS 模塊”,此方案雖然硬件成本稍高,需要嵌入式CPU芯片來支持嵌入式操作
40、系統,但可以實現豐富協議接口,便于移植和向高端系統應用升級,更加便于數據采集與傳輸的實現。 圖1給出了一個無線數據采集和傳輸終端組成的原理參考圖,采用Motorola半導體(編者注,現更名為:Freescale)嵌入式CPU MPC8xx加GPRS模塊CMS91的第二套實現方案。 圖1 終端組成原理參考圖 終端工作原理為通過RS232/485口接收到用戶數據,然后將數據打成IP包,通過GPRS模塊接入GPRS網絡,再通過各種網關
41、和路由將數據發送到數據處理中心。 下面對圖1中的組成原理進行詳細介紹: 嵌入式CPU芯片是整個數據采集終端的核心,可以很好地支持嵌入式操作系統;考慮到嵌入式操作系統的移植方便性和性能要求,采用了當前成熟的Motorola MPC8xx嵌入式CPU。許多操作系統廠家都針對這種類型的CPU開發微碼和套件(BSP),以方便用戶移植。 GPRS模塊主要完成無線上網的功能。在市場上有一
42、些成熟的產品,譬如說Sony/Ericsson的GM47;Simens的MC35等。在這里選用Cellon公司的CMS91。它是一種雙頻段GSM/GPRS 10級模塊,主要優點有:低功耗、接口簡單、AT指令功能完善、可支持GPRS CLASS 10、開發多媒體應用、價格較低等。同時,它也提供SMS(短消息服務)和語音功能。GPRS模塊提供RS232接口,可以通過它來完成對模塊的控制,譬如撥號和切換模式等。一旦通過模塊連接上Internet,采集到的數據就可以用TCP/IP傳輸方式發送到任意一個具有公網IP地址的主機上去,從而實現采集數據的無線傳輸。
43、0; 數據采集一般采用標準RS232或RS485接口,采集壓力、溫度等傳感器數據。由CPU負責對采集到的數據進行運算和處理,然后交給GPRS模塊將其發送給遠程數據中心。 Watchdog主要用來防止終端系統死機。通過軟件定時寫數據到WD硬件,一旦系統死機,軟件工作不正常,WD硬件由于接收不到數據而產生硬件中斷,從而系統自動重啟。 ROM主要用于保存嵌入式操作系統、應用程序及相關配置參數,通過內部總線直接與CPU通信。在這里選
44、用了Intel公司的28F320-J3,32M字節。可以在ROM上完成文件系統,但需要在操作系統中加入文件系統處理模塊。 LCD是可選模塊,用來顯示狀態信息等。10Base-T也是可選模塊,方便調試。也可以利用NAT技術和10Base-T端口將終端作為連接Internet的網關。實施中的技術難點 CPU通信端口的配置 在此設計中選用MPC850微處理器, 它是一個多
45、用途的通用芯片,內部集成了微處理器和常用外圍組件,可用于各種控制領域。它是MPC860應用于通信系統的低成本實現,提供了更高的性價比,并在通信方面有所增強,比如通用串行總線(USB)的支持。MPC850集成了嵌入式PowerPC 核和一個為通信使用的專門的RISC通信處理器模塊(CPM)。MPC850 的 CPM 支持6個串行通道:一個串行通信控制器(SCC),一個USB,兩個串行管理控制器(SMS),一個I2C接口,和一個串行外圍接口電路SPI。通常可將一個SCC和兩個SMS配置成為通用串口UART,用以控制不同的模塊且速率可調。 &
46、#160; ROM上文件系統的實現 普通的ROM操作只能以模塊操作,維護起來很不方便,而且由于在讀寫的時候沒有緩沖操作,數據很容易丟失和出錯。在ROM上實現的文件系統 可以合理的分配和使用每一個區塊,減少了區塊遷移和區塊過度使用。本設計中采用Intel J3系列(28F320J3)閃存做為存儲設備, 實現了TrueFFS。首先在系統啟動配置文件中配置TFFS的三層結構,修改MTD。系統啟動時初始化文件系統 和缺省路徑。如果成功,就生成了可操作的文件設備符。自此,用戶就可以使用一般的文件操作方式了(生成、讀、寫
47、和刪除)。要注意的是在讀寫完文件后,要顯示關閉文件,以避免數據丟失。 設備作為網關時的網絡地址轉換(NAT)實現 采用NAT接入Internet改變了原來使用代理軟件接入Internet的方式,可采用兩種NAT的設置(動態NAT和靜態NAT)實現Internet的接入。動態NAT實現所有主機對Internet的訪問。由于NAT具有隱藏網絡內部拓撲結構的功能,外部主機不能直接訪問內部網站或主機。但通過動、靜態NAT的聯合使用,既可以實現內外部互訪,又
48、可以隱藏網絡內部拓撲結構,確保網絡安全。在具體實現中,首先要通過PPP撥號上GPRS網絡,得到分配地址。如果得到CPU通信端口上分配的網絡通信內部IP地址,然后配置NAT參數,將其中的兩個端口參數配置為GPRS網絡地址和內部通訊地址。最后用配置好的NAT參數將NAT初始化。 GPRS模塊工作模式的使用 利用CMS91進行數據傳輸的主要方法有3種: 1.SMS Messages
49、 可以用來傳輸字符或者二進制數據,一般情況下每條SMS的字節長度是140字節,SMS適合數據量小的對實時性要求不高的場合。 2.Data Calls在數據鏈路建立以后可以進行透明或者非透明的數據傳輸。主要適合數據量比較大而傳輸次數較少的場合。 3.GPRS數據傳輸適合所有情況下的數據傳輸,是未來的發展趨勢。 利用CMS91 GPRS模塊進行基于Internet的數據通信SMS
50、和Data Call應用有很大的不同,無論是SMS還是Data Call都是有相應的AT指令支持的,使用都是比較簡單的、無需了解實際的運作流程,但是對于GPRS的數據應用,牽涉的網絡協議方面的知識要相對較多。 在這種應用中,CMS91 GPRS模塊相當于一個無線調制解調器用戶的應用系統,需要通過PPP(LCP/PAP/IPCP)先和運營商的Internet接入服務器連接,然后才能應用TCP/IP、UDP或者更高一層的應用層程序http、FTP等進行通信。在目前的GPRS應用中,如果應用系統是基于操作系統的,由于系統功能比
51、較強,可以采用完整的PPP協議,但是如果應用系統是采用MCU的,那么一般采用簡化的PPP協議,將一些不兼容的信息拒絕掉。 利用GPRS進行數據傳輸的結構有兩種,主要區別在于服務器端的位置: 服務器端采用普通Internet上的主機方式,或者服務器通過DDN(或其它高速連接的方式如ASDL)直接與中間移動網CMNET連接的方式。 根據以上介紹的設計實施技術,不難寫出一個完整的利用GPRS模塊基于Internet的數據通信流程結語 本文從系統結構和實現
52、方式上介紹了一個基于GPRS的無線數據采集和傳輸終端的實現方法,尤其著重描述了如何利用GPRS進行數據通信。一般無線數據采集終端都用在專用系統中,如電力、水利等,特別適合小數據量低速數據傳輸要求,對工作穩定性的要求一般較高。在這里再提出一些成本和兼容性方面的設想:1.嵌入式CPU芯片由MPC8xx轉換為ARM芯片。2.網絡支持從GPRS升級到CDMA,可以通過更換無線通信模塊來實現。 參考文獻: 1. 陳凱旋、謝海滔,GPRS原理及其應用,鐵道通信信號,2003年7月,Vol.39,No.7基于嵌入式Web Server的無線數據采集
53、系統 技術分類: 測試與測量 嵌入式系統 來源:CE China/馮峰 史燕 發表時間:2006-01-15 1 硬件設計 1.1 基于MCF5272芯片的嵌入式Web Server 基于MCF5272芯片的嵌入式Web Server
54、硬件配置如下:MCF5272(Cold Fire系列)32位處理器、4M字節的兩片16×1M位數據寬度FLASH、16M字節的兩片16×4M位數據寬度SDRAM、兩個標準RS-232串口、一個標準10/100M自適應快速以太網接口、一個BDM接口、各種狀態指示和電源等。 MCF5272微處理器是迄今為止摩托羅拉推出的最高集成度的Cold Fire微處理器。這款高集成的Cold Fire微處理器將10/100MB以太網控制器和一個USB模塊等通信外圍設備結合起來,提高了MCF5272集成通信微處理器集成水平。 它不僅提供了一套新的通信外圍設
55、備,同時還包含了以往Cold Fire標準產品所具備的廣受歡迎的通用外圍設備。 1.2 PTR2000+系列無線數傳模塊 PTR2000+為訊通科技出產的無線數傳模塊,具有接收發射合一、體積小、外圍器件少等優點,可直接與MCU串口相接,也可以接計算機RS232接口,軟件編程非常方便。由于采用了低發射功率、高接收靈敏度的設計,使用者無需申請許可證 。其標準DIP引腳間距,更適合嵌入式設計。
56、 PTR2000+具有良好的產品特性,工作頻率為國際通用的數傳頻段433MHz,FSK調制,抗干擾能力強;采用DDS+PLL頻率合成技術,頻率穩定性極好;具有兩個頻段,適合于需要多信道工作的特殊場合;工作速率最高可達20Kbit/s,也可在較低速率(如9600bps)下工作。 1.3 系統原理 整個系統由數據采集發射終端和數據接收端組成。 &
57、#160; 數據采集發射終端主要以51系列單片機為核心,MCU的P1口控制多路選擇器,對8路模擬信號進行選擇,選中的模擬信號進入高速AD轉換器,進行模數轉換。MCU同時控制AD的采樣頻率和起始轉換,轉換結果存入FIFO存儲器。按照規定的通信協議,MCU對數據進行編碼,最后通過數傳模塊PTR2000+發射給遠方接收端。為提高數據傳輸的可靠性,數據發送完畢,MCU將PTR2000+轉換為接收狀態,接收主機的應答信號或控制字。 圖1 數據采集端結構框 PT
58、R2000+通過RS-232將接收到的數據送入MCF5272嵌入式Web Server,MCF5272嵌入式Web Server接收完數據,將PTR2000+轉換為發射狀態,然后對數據進行CRC循環碼校驗。如果數據正確,就通過嵌入式操作系統的UDP/IP協議棧,將數據打包,保存到FLASH芯片的可寫JFFS文件系統之中,同時運行web服務器,等待客戶服務端通過網絡訪問數據;錯誤,則向PTR2000+發送重發命令。MCF5272嵌入式Web Server通過以太網口接入Internet網絡,用戶可通過瀏覽器(例如:IE)對系統進行遠程配置、管理(如更改IP,重新啟動系統等),并且可以調用封裝好的
59、函數API直接對FLASH芯片的某幾個扇區進行讀寫操作,可將配置的信息以及采集數據保存在系統FLASH芯片上。 圖2 數據接收端結構框 上位PC機通過RS-232與BDM調試器相連,BDM調試器通過BDM口與Web Server相連,可以對Web Serve進行初始化配置、調試和日常維護。2 系統軟件實現 系統的軟件設計與實現是本系統實現的關鍵之一。
60、 2.1 系統軟件:包括嵌入式操作系統與設備驅動程序 嵌入式操作系統是支持嵌入式系統應用的操作系統軟件,是在系統實時性、硬件相關性、軟件固態化等方面有著突出特點的專用操作系統。由于Cold Fire系列芯片是沒有MMU (內存管理單元Memory Management Unit)的處理器,而 uClinux是專為那些沒有MMU的嵌入式處理器開發的,所以本系統采用uClinux嵌入式操作系統。
61、; uClinux是Linux的一個嵌入式版本,它是源代碼開放的嵌入式操作系統,其內核的二進制映像文件可以做到小于512K。uClinux針對無MMU的處理器設計,支持多 任務,具有完備的TCP/IP協議棧并支持多種網絡協議。uClinux還支持多種文件系統,如ROMFS、NFS和JFFS等。另外,uClinux可移植性很強,用戶通過重新配置、編譯內核,很方便將其移植到68K、Dragon Ball、Cold Fire、Power PC、ARM等多種處理器計算平臺。當前uClinux提供2.0和2.4兩個內核版本。
62、60; 本系統采用uClinux嵌入式操作系統主要需要解決以下三個問題: 第一,實時性問題。uClinux本身并沒有關注實時性問題,它并不是為了Linux的實時性而提出的。而本系統中的數據采集功能對操作系統的實時性有一定要求。通過給uClinux打上其它Rt-linux的實時性補丁,就可以增強uClinux的實時性,滿足這個系統的實時要求。 第二,JFFS文件系統的建立。uCl
63、inux系統采用Romfs作為根文件系統,Romfs文件系統不支持動態擦寫保存。而本系統中的嵌入式的Web Server在運行過程中,要求能夠動態地保存一些數據,并且當系統重新啟動時,保存的數據依然存在。所以我們需要充分發揮Flash可擦寫的優勢,在系統運行過程中,動態地擦寫Flash來保存數據。通過建立JFFS文件系統,可以用Flash來保存數據,即將Flash作為系統的硬盤來使用。可以像操作硬盤上的文件一樣操作Flash芯片上的文件和數據。系統運行的參數可以實時保存到Flash芯片中,在系統斷電后數據仍然存儲在Flash芯片中。為實現Flash上的JFFS文件系統,我們需要在內核中加入對J
64、FFS文件系統和Flash設備的支持,并針對具體的Flash 芯片修改設備驅動程序,生成設備節點并將JFFS文件系統掛接到Flash 設備上。 第三,編寫各個設備的驅動程序。主要包括串口驅動程序、以太網接口驅動程序、BDM調試接口驅動程序和FLASH芯片驅動程序。 2.2 嵌入式Web Server軟件系統實現 嵌入式Web Server的
65、軟件系統包括五個部分: HTTP引擎; 虛擬文件系統; 配置模塊; 安全模塊; 應用程序接口模塊。 圖3 嵌入式Web Server軟件系統示意圖 其中HTTP引擎負責響應用戶的請求、通過虛擬文件系統訪問靜態數據信息、通過應用程序接口得到動態數據信息。 虛擬文件系統為嵌入
66、式Web Server提供虛擬文件服務,虛擬文件系統使用數據結構存儲文件大小、修改時間等信息。對于存儲HTML文件需要的動態信息建立數據結構保存腳本的指針和腳本所調用函數的名稱。通過虛擬文件系統將Java、 GIF、 PDF、 HTML以及文本等文件形式編譯為Web服務器認可的代碼,而獨立于具體的文件系統。 配置模塊使系統管理員可以從任何一臺標準的Web瀏覽器上設置嵌入式Web Server參數,在系統啟動中定義的配置環境變量包括并發連接數、Socket端口、主機名稱、根文件路徑、缺省初始文件以及非活動超時和時區等。 &
67、#160; 配置模塊對標準瀏覽器的開放使得安全問題更加重要,尤其是對網絡設備的配置和控制信息的訪問成為安全保護的重點。安全模塊通過在服務器上定義安全域和對每個安全域定義的用戶名和密碼實現對敏感信息的保護。還可以對請求數據采取加密措施實現安全保護功能。 應用程序接口模塊實現和嵌入式應用系統的數據交換。在嵌入式Web Server中,應用程序接口與嵌入式操作系統通信,實現對嵌入系統的配置、監視和控制,是嵌入式Web Serv er軟件系統的核心。而應用程序接口模塊常見的有CGI(Common Gateway Interfac
68、e)、SSI(Server Side Include)和HCPA(HTML-to-C Preprocessor Approach)等3種形式。 本系統應用程序接口模塊采用CGI形式。CGI提供嵌入式Web Server一個執行外部程序的通道,CGI程序經過編譯成為可執行文件,放在服務器端運行。嵌入式Web Server根據用戶的請求調用相應的CGI程序。并由嵌入式Web Server將CGI程序得到的動態信息封裝到頁面中,發送到用戶瀏覽器上。 3 無線數據傳輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 柔性防水膩子和普通膩子的檢測報告
- 中國球狀爆米花機行業投資分析及發展戰略咨詢報告
- 中國白羽肉雞行業市場發展監測及投資戰略咨詢報告
- 2025年公路建設施工市場環境分析
- 2020-2025年中國高空作業車行業發展潛力分析及投資方向研究報告
- 培訓背景課件模板
- 2025年中國濕式強磁選機行業市場發展前景及發展趨勢與投資戰略研究報告
- 稅務師精講課件更新時間
- 新生命呵護的商業高端典范
- 中國抽濕器市場深度評估及行業投資前景咨詢報告
- 眾包物流模式下的資源整合與分配
- 鐵路貨運流程課件
- 四川省成都市成華區2023-2024學年七年級上學期期末數學試題(含答案)
- 慢性硬膜下血腫護理要點大揭秘
- 管工基礎知識培訓課件
- 成人氣管切開拔管中國專家共識解讀
- “微”力量微博營銷
- 2022-2023學年山東省菏澤市成武縣人教版四年級下冊期末考試數學試卷(解析版)
- 浙江省舟山市2024屆數學高一第二學期期末質量跟蹤監視試題含解析
- 數據統計與分析教學大綱
- 2023建筑業10項新技術
評論
0/150
提交評論