版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理與應(yīng)用2022/7/26第5部分 單片機(jī)和嵌入式系統(tǒng)編程2學(xué)習(xí)內(nèi)容和目標(biāo)從信息交互角度的建立通訊的概念總覽各種通訊方法,及其注意事項(xiàng)建立幀、包、報(bào)文等基本概念,以及其使用方法建立通訊中需要注意的問題注意:思維一定要開闊一些,多問為什么。允許不用舉手,并隨時(shí)打斷,向我提任何和課程相關(guān)的問題。2022/7/262本節(jié)學(xué)習(xí)目標(biāo)1.1 引言信息交互:發(fā)出和接收信息的過程。通常由6個(gè)部分組成:信息源、信息、信息傳遞的通道或網(wǎng)絡(luò)、接收者、反饋、噪音。事實(shí)上,信息交互不僅僅存在于通訊系統(tǒng)中。至少目前的定義,通訊就是信息交互的過程。那么請從信息流的角度看待通訊問題即使對于某個(gè)測控系統(tǒng),當(dāng)中傳遞的也是
2、信息(信號只是信息的載體)。2022/7/2631 信息交互與通訊繼續(xù)考慮上述的封閉測控系統(tǒng),可以在任何一個(gè)環(huán)節(jié)與環(huán)節(jié)之間采用模擬的或數(shù)字的通訊方式,傳遞信息。2022/7/2641.1 引言(續(xù)1)需要考慮的是如何有效的傳遞信息:采用何種載體如何保證信息在傳遞過程中的正確率請務(wù)必注意:必須依據(jù)信源特性確定載體類型、特征等問題。當(dāng)前來說,信號是目前在工業(yè)中傳遞信息最常用的載體。當(dāng)前,工業(yè)中常用的標(biāo)準(zhǔn)信號規(guī)格可以分為:模擬信號:05V的電壓信號、420mA的電流信號數(shù)字信號:這是目前用的最多的,并且有著多種形式可供選擇。不論傳遞何種信號,必然需要考慮兩個(gè)內(nèi)容:確定發(fā)射機(jī)與接收機(jī)之間的物理連接方法
3、;確定發(fā)射機(jī)和接收機(jī)之間對話模式。物理鏈接、對話模式、信號特征三者往往是統(tǒng)一的,必須綜合考慮。另外,在實(shí)現(xiàn)中往往加入其他因素進(jìn)行綜合考慮,例如:環(huán)境狀況、成本問題、工藝問題、保密性問題、對以下2個(gè)實(shí)例進(jìn)行分析:為什么使用這種方式?能否使用其他的通訊方式?實(shí)現(xiàn)這些通訊方式的過程中需要注意哪些內(nèi)容?電纜式測井中采用7000m電纜將儀器和HOST PC連接起來。但是在儀器與遙傳短節(jié)之間采用 CAN Bus連接;在一些數(shù)控機(jī)床中,PLC的CPU模塊與其他模塊采用RS232通訊。2022/7/2651.2 信號、信號傳輸與通訊對以下2個(gè)實(shí)例進(jìn)行分析:為什么使用這種方式?能否使用其他的通訊方式?實(shí)現(xiàn)這些通
4、訊方式的過程中需要注意哪些內(nèi)容?電纜式測井中采用7000m電纜將儀器和HOST PC連接起來。但是在儀器與遙傳短節(jié)之間采用 CAN Bus連接;在一些數(shù)控機(jī)床中,PLC的CPU模塊與其他模塊采用RS232通訊。2022/7/2661.2 信號、信號傳輸與通訊(續(xù)1)接口:泛指實(shí)體把自己提供給外界的一種抽象化物(可以為另一實(shí)體),用以由內(nèi)部操作分離出外部溝通方法,使其能被修改內(nèi)部而不影響外界其他實(shí)體與其交互的方式。對于目前的信息科學(xué)領(lǐng)域,接口可以分為兩大類:軟件接口:例如,用戶界面、JAVA接口、動態(tài)鏈接庫接口、硬件接口:RS232、Ethernet、I2C、簡單的說接口就是一個(gè)契約或者規(guī)范。正
5、如,信號可以分為兩類一樣,接口也可以分為兩類:模擬接口:數(shù)字化接口:不論是模擬或數(shù)字接口,都必須在數(shù)字化控制中考慮以下問題:速度:資源占用:CPU時(shí)間、中斷、DMA傳輸距離:差錯(cuò)控制:供電:其他:2022/7/2671.3 通訊接口引論2.1 引言考慮:在MCU內(nèi)部,所謂總線是否可以歸納到接口的范疇。在這里,若非特別指明,接口均指代系統(tǒng)間的通訊連接。2022/7/2682 數(shù)字化通訊接口大部分的數(shù)字化通訊接口以下圖為基礎(chǔ)進(jìn)行修改,實(shí)現(xiàn)通訊。2022/7/2692.2 數(shù)字化接口電路的構(gòu)成接口的基本功能:數(shù)據(jù)傳送:CPU執(zhí)行輸入/輸出指令與外部設(shè)備交換數(shù)據(jù)。(串行、并行)數(shù)據(jù)緩沖:用于輸入輸出過
6、程中的暫存,對方不能及時(shí)接收數(shù)據(jù)時(shí),將數(shù)據(jù)暫存在接口電路中。根據(jù)接口的需要可以是1個(gè)或2個(gè)字節(jié),或是FIFO存儲器,也可以是數(shù)據(jù)存儲區(qū)。信號變換:完成數(shù)字信號與I/O設(shè)備信號(如模擬信號、開關(guān)信號、計(jì)數(shù)脈沖等)的相互轉(zhuǎn)換。中斷:大多數(shù)接口電路有中斷功能,以提高接口程序的效率。接口的高級功能差錯(cuò)控制:實(shí)現(xiàn)檢錯(cuò)或糾錯(cuò)。高層通信協(xié)議:實(shí)現(xiàn)呼叫、數(shù)據(jù)包、流量控制等。即插即用、電源管理、動態(tài)配置等。2022/7/26102.3 通訊接口運(yùn)行概述接口的操作:程序?qū)涌诘脑L問(讀/寫)方式。不同的接口電路支持不同的操作方式。查詢控制方式:在程序的主動控制下,通過讀取狀態(tài)寄存器了解接口的情況,完成相應(yīng)的程序操
7、作。為了及時(shí)了解接口的狀態(tài),需要時(shí)間密集的查詢操作。CPU效率低。中斷控制方式:當(dāng)接口出現(xiàn)需要程序干預(yù)的事件,通過中斷通知CPU,CPU再讀取狀態(tài)寄存器,確定事件的種類,以便執(zhí)行不同的代碼處理。CPU效率高而且及時(shí)。DMA控制方式:CPU與接口的數(shù)據(jù)傳送采用DMA傳送,即傳送的具體過程由硬件(DMA控制器)完成,傳送速度比通過CPU快,尤其是在批量傳送時(shí)效率很高。2022/7/26112.3 通訊接口運(yùn)行概述(續(xù)1)通信協(xié)議是指通信雙方對數(shù)據(jù)傳送控制的一種約定,包括對數(shù)據(jù)格式,同步方式,傳送速度,傳送步驟,檢糾錯(cuò)方式以及控制字符定義等問題做出統(tǒng)一規(guī)定。通信雙方必須共同遵守,它也叫做鏈路控制規(guī)程
8、。由于這些規(guī)格(語言)的規(guī)定都是事先在會議上講好的,一般我們稱之為“協(xié)議”(英文稱為protocol)。協(xié)議主要由以下三個(gè)要素組成:語法:“如何講”,數(shù)據(jù)的格式、編碼和信號等級(電平的高低)語義:“講什么”,數(shù)據(jù)內(nèi)容、含義以及控制信息。定時(shí)規(guī)則(時(shí)序):明確通信的順序、速率匹配和排序。討論接口則必須討論協(xié)議,硬件接口相同,不代表協(xié)議相同;協(xié)議類型相同,不代表編碼方式相同;。正是由于多種不同,使得目前存在各種各樣的通訊方式。例如,同樣是TCP協(xié)議,但是并非一定使用RJ45接頭;同樣電平標(biāo)準(zhǔn)也可以設(shè)定的不同。同樣,對于RS232的串口標(biāo)準(zhǔn),即使按照以前規(guī)定的7位字符位,但是若組成方式不同也會有不同
9、。2022/7/26122.4 數(shù)字通訊協(xié)議可以參考ISO/OSI的7層網(wǎng)絡(luò)架構(gòu)。實(shí)現(xiàn)信息交互/通訊,的最終目標(biāo)是考慮如何讓接收方能夠“理解”發(fā)送方的意圖。2022/7/26132.5 完整的數(shù)字化通訊模型多種多樣、千變?nèi)f化的通訊接口。PC機(jī)常用內(nèi)部總線和接口:ISA、PCI、PCI-E、Compact-PCI、PC104、PXI、PC104 Plus、DDR 3、STAT、STAT 2、SCSI、PC機(jī)常用對外總線和接口:RS232、PS2、VGA、HDMI、USB 2.0、USB3.0、SCSI、PCMCIA、常用無線接口:Blue Tooth、WIFI、CDMA、WCDMA、LTE、芯片
10、之間常用接口:高速串口:SPI、HDMI、PCI-E并口:低速串口:I2C工業(yè)常用接口:早期串行接口:RS232、RS422、RS485、工業(yè)網(wǎng)絡(luò)總線:工業(yè)以太等現(xiàn)場總線:目前比較熱門的接口其他:2022/7/26142.6 常見通訊接口舉例3.1 數(shù)據(jù)傳輸中的報(bào)文報(bào)文(message)是通訊中交換與傳輸?shù)臄?shù)據(jù)單元,即站點(diǎn)一次性要發(fā)送的數(shù)據(jù)塊。報(bào)文包含了將要發(fā)送的完整的數(shù)據(jù)信息,其長短很不一致,長度不限且可變。顯然報(bào)文也是網(wǎng)絡(luò)傳輸?shù)膯挝唬瑐鬏斶^程中會不斷的封裝成分組、包、幀來傳輸。封裝的方式就是添加一些信息段,那些就是報(bào)文頭以一定格式組織起來的數(shù)據(jù)。比如里面有報(bào)文類型,報(bào)文版本,報(bào)文長度,報(bào)文
11、實(shí)體等等信息。注意:報(bào)文幀;報(bào)文是一個(gè)完整的內(nèi)容,當(dāng)然可以將一個(gè)很長的、很大的報(bào)文拆分成幾個(gè)小的報(bào)文報(bào)文不是由硬件完成的,而是由通訊雙發(fā)約定的(協(xié)議)由于為通訊使用,所以報(bào)文還必須考慮到便于傳輸、校驗(yàn)、信息說明等內(nèi)容2022/7/26153 報(bào)文、包和幀的概念一般在ISO的網(wǎng)絡(luò)層,往往將報(bào)文拆分后,根據(jù)各自的通訊協(xié)議進(jìn)行封裝,并下發(fā)到下一層。打包的工作可以分為兩類,一類是需要用戶實(shí)現(xiàn)的,一類則可以依靠硬件驅(qū)動和硬件實(shí)現(xiàn)的。譬如,某網(wǎng)頁的內(nèi)容非常多,不可能僅靠一個(gè)報(bào)文就夠的。因此可以對報(bào)文進(jìn)行拆分。拆分后,依據(jù)網(wǎng)絡(luò)層進(jìn)行打包傳遞。但是將較大的報(bào)文進(jìn)行拆分,將面對多的問題(略)。有些工作目前已經(jīng)被
12、整合到驅(qū)動中,有些則需要用戶自己實(shí)現(xiàn)。在有些接口協(xié)議中,幀數(shù)據(jù)就是包數(shù)據(jù)。但是請不要將包和幀等同起來。對于包的理解,在TCP/IP中應(yīng)用的非常多。推薦書籍:TCP/IP詳解(3卷),W.Richard Stevens 著,機(jī)械工業(yè)出版社2022/7/26163.2 數(shù)據(jù)傳輸中的數(shù)據(jù)包(packet)通訊傳輸中,幀是由不同的“位”組成的最小數(shù)據(jù)段。數(shù)據(jù)包往往也會被拆分,按照幀的單位進(jìn)行傳輸。幀由幾部分組成,不同的部分執(zhí)行不同的功能。例如CAN Bus協(xié)議,將幀同報(bào)文一樣,分成幀頭、數(shù)據(jù)、幀尾三個(gè)部分。幀頭和幀尾往往由協(xié)議自動指定。幀的大小由通訊設(shè)備來確定,對于有些通訊接口而言,幀的大小是固定的,
13、例如RS232、CAN Bus等;但是有些通訊接口的幀大小是在一定范圍內(nèi)浮動的,例如以太網(wǎng)。不僅在通訊接口中,幀的概念在其他很多地方都有使用。例如,目前的有些高清攝像機(jī),實(shí)際保存的是圖片,只不過拍攝這些圖片的時(shí)間間隔非常短,連續(xù)起來就像視頻(事實(shí)上視頻也是按照幀進(jìn)行劃分的)。這些圖片往往被稱為幀。幀的結(jié)構(gòu)是由相對應(yīng)的通訊接口進(jìn)行確定的。在很多通訊協(xié)議中(例如RS232、CAN Bus、SPI等),報(bào)文被拆分成包或幀。因此對于接收方來說,獲取接收信息,必須按照規(guī)則將幀進(jìn)行整合,從而得到報(bào)文。2022/7/26173.3 幀(Frame)雖然協(xié)議,或者接口,均帶有編碼和解碼的概念,但是并不是我們說
14、采用何種通訊接口,就可以實(shí)現(xiàn)通訊。在當(dāng)前的很多工業(yè)通訊中,接口并未定義應(yīng)用層和表示層的協(xié)議。換句話說,這些接口只能夠告訴你報(bào)文的0、1組成方式,而不能告訴你報(bào)文所代表的具體含義。編碼往往具有兩種范疇:將對象數(shù)據(jù)采用約定的協(xié)議(往往自定義),切分成由0、1組成的數(shù)據(jù)段;在通信理論中,編碼是對原始信息符號按一定的數(shù)學(xué)規(guī)則所進(jìn)行的變換。編碼的目的是要使信息能夠在保證一定質(zhì)量的條件下盡可能迅速地傳輸至信宿。事實(shí)上,在應(yīng)用中這兩種范疇都使用到了。解碼則是編碼的逆過程。2022/7/26184 編碼(Code)和解碼(Decode)某設(shè)備中,采用以太網(wǎng)傳輸采樣數(shù)據(jù)、控制命令、狀態(tài)信息等內(nèi)容。2022/7/
15、26195 報(bào)文編碼和解碼示例1考慮:如何來保證接收方能夠接收到來自發(fā)送方的數(shù)據(jù)和指令?必須保證不能丟數(shù)據(jù);必須保證能夠正確的理解數(shù)據(jù)背后的含義;顯然需要分析對象特征從而確定以下內(nèi)容分析應(yīng)用環(huán)境,以保證可靠性分析數(shù)據(jù)流量和傳輸特征,來確定傳輸速率、帶寬分析交互方法,從而確定通訊協(xié)議分析數(shù)據(jù)類型,劃分報(bào)文分析傳遞的信息內(nèi)容,確定報(bào)文編碼、解碼方式其他;以上內(nèi)容并非各自獨(dú)立,確定使用何種通訊協(xié)議必須綜合考慮所有因素,有時(shí)因素之間存在矛盾的問題,因此需要根據(jù)對象特性進(jìn)行平衡。如果經(jīng)過綜合分析和論證,選定了通訊協(xié)議和接口,那么報(bào)文的編碼和解碼方式則可以開始。2022/7/26205 報(bào)文編碼和解碼示例
16、1(續(xù)1)在這里,我們將所有的報(bào)文分為三個(gè)部分:報(bào)文頭、報(bào)文正文、報(bào)文尾。 報(bào)文結(jié)構(gòu) 報(bào)文頭結(jié)構(gòu) 報(bào)文尾結(jié)構(gòu) 2022/7/26215 報(bào)文編碼和解碼示例1(續(xù)2)b0 b7 b15報(bào)文起始標(biāo)識符:0 x55aa報(bào)文總長度(報(bào)文頭報(bào)文正文填充字段)發(fā)送方標(biāo)識報(bào)文類型標(biāo)識時(shí)戳(內(nèi)容不定)b0 b7 b15報(bào)文校驗(yàn)和報(bào)文結(jié)束標(biāo)志符: 0 xff00在報(bào)文頭中:報(bào)文起始標(biāo)志:0 x55AA是常用的標(biāo)志由于存在多種報(bào)文,每種報(bào)文長度并不確定,為了方便將幀數(shù)據(jù)組裝成報(bào)文,則需要給出報(bào)文長度發(fā)送方標(biāo)識:由于具有多個(gè)設(shè)備,每個(gè)設(shè)備均可以做發(fā)送方,并且每個(gè)發(fā)送方數(shù)據(jù)的含義不同,因此為了方便解碼必須指定發(fā)送方,
17、從而使用對應(yīng)的編碼方式。(當(dāng)然還有其他原因,略)報(bào)文類型:有時(shí)候一個(gè)個(gè)發(fā)送方會發(fā)送多種報(bào)文,為了區(qū)別這種來自單個(gè)設(shè)備的多個(gè)報(bào)文。(問:如果這樣為啥還用發(fā)送方標(biāo)識)時(shí)戳:當(dāng)前報(bào)文發(fā)送和接收到的時(shí)間。報(bào)文尾的主要目的在于:如何確定報(bào)文結(jié)束;如何確定報(bào)文接收的正確性;如何保證幀組裝和解碼時(shí),不會出錯(cuò)。2022/7/26225 報(bào)文編碼和解碼示例1(續(xù)3)在報(bào)文頭中的“發(fā)送方標(biāo)識”和“報(bào)文類型”已經(jīng)具有編碼的概念了,例如用0 x0801 表示“動力系統(tǒng)集中監(jiān)控臺”,用0 x0001表示該報(bào)文類型。但是在報(bào)文正文中,各個(gè)數(shù)據(jù)的定義則涉及到較多的內(nèi)容,并非像報(bào)文頭那樣簡單指定。報(bào)文正文涉及到以下內(nèi)容:數(shù)據(jù)
18、內(nèi)容:例如發(fā)送哪些數(shù)據(jù);數(shù)據(jù)類型:這些數(shù)據(jù)時(shí)開關(guān)量、數(shù)值量(浮點(diǎn)、定點(diǎn)、正負(fù))數(shù)據(jù)長度:有些數(shù)據(jù)位32bit,有些為8bit;數(shù)據(jù)的取值范圍:數(shù)據(jù)的單位:數(shù)值量往往有其物理含義,例如表征壓力、電流等發(fā)送數(shù)據(jù)的先后順序:哪個(gè)數(shù)據(jù)先發(fā)送,哪個(gè)后發(fā)送;編碼和解碼方式:如何使用數(shù)字量表示這些浮點(diǎn)、定點(diǎn)、正負(fù)數(shù)值,并且接收方如何針對數(shù)據(jù)進(jìn)行解碼。對于其中的一些報(bào)文請參見文檔:2022/7/26235 報(bào)文編碼和解碼示例1(續(xù)4)由于報(bào)文是一個(gè)組裝起來的數(shù)據(jù)段,因此可以使用封裝包的方法來進(jìn)行編程。目前多種語言提供了這種封裝方法,例如C/C+的結(jié)構(gòu)體、C+的類、Delphi的類、JAVA的類。事實(shí)上封裝的方
19、法很多,例如:方法1:采用結(jié)構(gòu)體嵌套的方式,能夠較清楚的反映報(bào)文大致結(jié)構(gòu)。每個(gè)被嵌套的結(jié)構(gòu)體采用各自的字段進(jìn)行編寫。方法2:使用完整的結(jié)構(gòu)體表示一個(gè)報(bào)文的具體結(jié)構(gòu)。2022/7/26246 報(bào)文編碼和解碼的編程/ C示例:方法1struct _tagMsg_XXX /名稱 struct 報(bào)文頭結(jié)構(gòu)體; struct 報(bào)文正文結(jié)構(gòu)體; struct 報(bào)文尾 結(jié)構(gòu)體; 其他字段;typedef struct _tagMsg_XXX SSMSG_XXX, *PSSMSG_XXX;方法1和方法2的本質(zhì)是一樣的,但是在報(bào)文正文中存在多種定義字段的方式。例如,按幀流的方式定義、或者按照數(shù)據(jù)內(nèi)容的方式定義字
20、段。2022/7/26256 報(bào)文編碼和解碼的編程(續(xù)1)/方法1:報(bào)文頭的定義(C示例)typedef struct _tagMsgBody_XXX /名稱 UINT16 msg_tag; /報(bào)文起始標(biāo)志符 UINT16 msg_len; /報(bào)文長度 UINT16 msg_id; /發(fā)送方標(biāo)識 UINT16 msg_type; /報(bào)文類型標(biāo)識 UINT32 msg_time; /時(shí)戳 MSG_HEADERINFO, *LP_MSG_HEADERINFO;/方法1:采用數(shù)據(jù)內(nèi)容定義報(bào)文正文typedef struct _tagMsgBody_XXX /名稱 數(shù)據(jù)類型 數(shù)據(jù)名稱; /第1個(gè)字段 數(shù)據(jù)類型 數(shù)據(jù)名稱; /第2個(gè)字段 數(shù)據(jù)類型 數(shù)據(jù)名稱; /第n個(gè)字段 SS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三輪車采購合同:2024年新型環(huán)保版版
- 二零二五年度消防員勞務(wù)派遣與消防安全檢查服務(wù)合同
- 2025年度綠色能源項(xiàng)目融資借款合同
- 2025年度版權(quán)合作與虛擬偶像培育合同
- 2025年度股權(quán)收購及轉(zhuǎn)讓法律文件制作合同范本3篇
- 南京理工大學(xué)泰州科技學(xué)院《林木遺傳學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京大學(xué)金陵學(xué)院《材料科學(xué)基礎(chǔ)(上)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南昌職業(yè)大學(xué)《聚合過程與原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 明達(dá)職業(yè)技術(shù)學(xué)院《游泳基礎(chǔ)Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版裝修工程合同范本:合同變更與通知3篇
- MOOC 電工學(xué)(電氣工程學(xué)概論)-天津大學(xué) 中國大學(xué)慕課答案
- 2019級水電站動力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 室內(nèi)裝飾裝修施工組織設(shè)計(jì)方案
- 洗浴中心活動方案
- 送電線路工程施工流程及組織措施
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 韓國文化特征課件
- 抖音認(rèn)證承諾函
- 清潔劑知識培訓(xùn)課件
- 新技術(shù)知識及軍事應(yīng)用教案
- 高等數(shù)學(xué)(第二版)
評論
0/150
提交評論