版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1串行通信的有效性措EIA-232-D的接口標準及EIA-EIA-485的端口連EIA-485的網(wǎng)絡連485網(wǎng)絡的主從式通信管理(通信協(xié)議基于485總線 通信系 4.1行通信的有設置起始、停止異步傳輸傳送一個字符的典型格式:如EIA-1位8位1位1位5678 567812波形8位數(shù)據(jù)
空閑態(tài) 連接握確認雙方已建立連接,收發(fā)準備就實軟件硬件握手線:如EIA-確接收方收 中中斷源、中斷請求信中斷服務程序、中斷矢中斷事件特征:隨中斷控制器:中 、優(yōu)先級控制復雜、效率高、可輪周期控制簡單、資源浪費、可靠性不 4.1串行通差錯檢冗余數(shù)據(jù)校驗:如2次重奇偶校驗:數(shù)據(jù)位加上校驗位中的1的總數(shù)為偶數(shù)則校驗和:按字相加運CRC循環(huán)冗余校驗接收方的出錯處請求重發(fā)布出錯信不理 EIA-232-D的接口串行 口的物理層規(guī)電子工 EIA制1969年:RS-232-1987年:EIA-232-在微機 口中廣泛采內(nèi)機械特性、電氣特性、功能特性、規(guī)程特性、 EIA-232-D的接口機械特標準連接DB-25、DB-插針、插結(jié)構(gòu)尺 EIA-232-D的接口電氣特傳輸方式:每個信號用一根線傳輸,共用地負邏輯電邏輯“1”:-5~邏輯0”:+5~EIA-232-D的電氣連 EIA-232-D的接口標電氣特電平轉(zhuǎn)TTL電邏輯“1邏輯“0232接口與TTL器件連接–采用MAX232、MAX220傳輸特速率20Kbps內(nèi)、距離15m標準波特率系列:1200、4800、9600、19200 EIA-232-D的接口標主要技術(shù)參 EIA-232-D的接口標功能特DTE:數(shù)據(jù)終端設備,如個人計算DCE:數(shù)據(jù)通信設備,如調(diào)制解調(diào)信號聯(lián)絡 DB-9連接器的引線引腳信號名符流功1載波檢表示DCE接收到載2接收數(shù)DTE3發(fā)送數(shù)DTE4數(shù)據(jù)終端DTE準備5信號信號公共6數(shù)據(jù)設備DCE7請求發(fā)DTE請求DCE將線路切換到發(fā)送8允許發(fā)DCE告訴DTE線路已接通可發(fā)送9指表示DCE與線路接通,出 規(guī)程特
EIA-232-D的接口標建立物理發(fā)起物理連接:發(fā)出DTR信物理連接就緒:接收到DSR信CD、數(shù)據(jù)傳輸請求發(fā)送數(shù)據(jù):發(fā)出RTS信數(shù)據(jù)傳輸準備就緒:接收到CTS信數(shù)據(jù)傳TxD、RxD、物理連接清除DTR信 EIA-232-D的接口標端口的直接連無握手連接:3全握手連自握手連 EIA-232-D串行通信的實硬件設計:接與TTL器件的連接:選用接 ?+5V供2個發(fā)送24個外部電EIA-232-D串行通信的實硬件設計:接與TTL器件的連EIA-232-D串行通信的實微機串口通信的基本原理示意可編程串行 可編程中斷控制器
……
EIA-232-D串行通信的實軟件設應用串口調(diào)試助手測初始串行接口的初始化中斷控制器的初始化查詢方接收中斷服務程中斷退出程主程 4.2.2EIA-232-D串行通信的實串口調(diào)試助手簡串口配選擇端口 選擇波特選擇數(shù)據(jù)位數(shù)、停止位數(shù)、校驗方打開或關閉串收發(fā)數(shù)據(jù)編ASCII碼、二進發(fā)送方自動、手 EIA-232-D串行通信的實初始化:串行接口的初始化流程置置波特率寄存器標設置數(shù)據(jù)格式:設置數(shù)據(jù)格式:串串行接口允許接收中 4.2.2EIA-232-D串行通信的實初始化:串行接口的初始化程void{
/*writedivideregisterflag/*9600bps /*1,7,odd*/outportb(0x3fc,0x08|0x03);/*setRTS,DTR;8250INTRPToutputenableoutportb(IER, /*receiveinterruptenable} 可編程異步串行 口內(nèi)部寄存器地串行口3F8---寫發(fā)送寄存器/讀接收寄存3F8---除數(shù)寄存器低字節(jié)(波特率因子3F9---除數(shù)寄存器高字3F9中斷允3FA---中斷識3FB線路控3FC---MODEM控3FD線路狀3FE---MODEM狀 線路控制寄存器數(shù)據(jù)位長D1005
01----6位10----7 81-----1.5位(數(shù)據(jù)位長為5)或2位(數(shù)據(jù)位長為6、7或奇偶校驗選擇D5D4000-----無校 001-----奇校 偶校101---奇校驗,附加位為終止位D6: 正常發(fā)
111---偶校驗,附加位為 終止正常發(fā)除數(shù)標志D7:0---正如設置數(shù)據(jù)格
1 波特率outportb(0x3fb, /*1,7,odd 波特率因子寄存器(高字節(jié)0x3F9、低字節(jié)波特率=1.8432MHz查表波特如設置波特率為outportb(0x3fb,0x80);/*設置 outportb(0x3f8,0x0C);outportb(0x3f9, MODEM控制寄存器D0(DTR):1-握手信號DTR有D1(RTS):1-握手信號RTS有D2D3(OUT2):1-8250的中斷請求信號INTRPT可以輸D4(自檢控制):1-自檢,即上述4個輸出信號分別和串D7D6D5--無如設置握手信號如設置串行接口的中斷信號允outportb(0x3fc, 中斷允許寄 中D0接收數(shù)據(jù)就
1--允許中D3MODEM狀態(tài)變D7D6D5D4--0000(未使用 4.2.2EIA-232-D串行通信的實查詢方式發(fā)送一個字符子程序N發(fā)送移位寄存器空Y發(fā)發(fā)送一個字返 EIA-232-D串行通信的實查詢方式發(fā)送一個字符子程voidsend_character(char{charstatus;{status=inportb(0x3fd)&/*waitforsendshiftregisterempty*/outportb(0x3f8,ch); /*寫發(fā)送寄存器(0x3F8) } 線路狀態(tài)寄存器D1-溢出D2-奇偶D3-幀格式D4D5-發(fā)送寄存器D6-發(fā)送移位寄存器D7-未若發(fā)送移位寄存器為
1有inportb(0x3fd)& 4.2.2EIA-232-D串行通信的實初始化:中斷控制器的初始化流程關關中清空清空串口接收寄存器、狀態(tài)寄存器 EIA-232-D串行通信的實中斷退出的流程圖關關中復位狀態(tài)寄存器復位狀態(tài)寄存器恢復恢復原中斷向開中 可編程中斷控制器8級硬件中IRQ4-異步通信COM1中斷(中斷類型號IRQ3-異步通信COM2中斷(中斷類型號獲取中斷向voidinterrupt 變量oldvect的數(shù)據(jù)類oldvect=getvect(0x0c);串口1的中斷向量暫存oldvect設置中斷向voidinterruptfar 函數(shù)asyncint()為中服務程setvect(0x0c,asyncint);串口1的中斷向量指向程序的起始地setvect(0x0c,oldvect);串口1的中斷向量設置為oldvect 中斷向 可編程中斷控制器中 寄存器0-允許中 中如允許串口1unsignedchar
ch=inportb(0x21)&0xef;outportb(0x21,ch);
/*0x21的D4為0/*0x21的D4為0中斷結(jié)束等控制寄存器其中D5為EOI位,EOI=1為中斷結(jié)束命中斷服務程序結(jié) 初始化:中斷控制器的初始化程序void{unsignedcharoldvect=getvect(0x0c);disable();inportb(0x3F8);inportb(0x3FA);
/*saveoldvector/*interruptdisableinportb(0x3FD);inportb(0x3FE);
8250接收寄ch=inportb(0x21)&outportb /*8259IRQ4interruptenablesetvect(0x0c,asyncint);
/*setnewvector/*interruptenable 工業(yè)計算機網(wǎng)絡與通 EIA-232-D串行通信的實中斷退出程void{outportb(0x3FA,0x00);outportb(0x3FC,
/*8250/*8250outportb(0x21,inportb(0x21)|setvect(0x0c,oldvect);}
/*8259IMR 4.2.2EIA-232-D串行通信的實中斷接收服務程序流讀入一個字符,讀入一個字符,存入接收緩沖修改修改緩沖區(qū)的數(shù)據(jù)存入指針發(fā)發(fā)8259EOI命返 4.2.2EIA-232-D串行通信的實中斷服務程 BUFFLEN100unsignedcharBuffer[BUFFLEN];unsignedint voidinterruptfarasyncint{unsignedchar
/*Readabytefrom/*saveif(buffin>=BUFFLEN) /*renewpointer /*8259EOI(中斷結(jié)束命令} 主程序流初初始化:串行通信參數(shù)、中斷控N串口接收到新數(shù)Y取出一個字符保存顯修修改緩沖區(qū)的數(shù)據(jù)取出指針 退出退出中出 頭文#include<stdio.h>#include<dos.h>
/*printf,puts,getche/*inportb,outportb,getvect,setvect,disable,enable#include#include
/*exit/*kbhit,clrsr#defineCOM1BASE#defineLCR#defineLSR#defineMCR#defineMSR#defineIER#defineIRR
全局變量 BUFFLEN100unsignedcharBuffer[BUFFLEN];unsignedintunsigned
voidvoidsend_character(charch);voidenableports(void);voidvoidinterruptfarasyncint(void);voidinterrupt(*oldvect)(void); 主程 unsignedchartem; for(;;){if(buffout!=buffin){}if(kbhit()!=0){ } 4.2.2EIA-232-D串行通信的實參考等.微機原理與 術(shù) :電子工業(yè)楊素行等.微型計算機系統(tǒng)原理及應用. ,熊光明.VisualC++/TurboC串口通信編 EIA-發(fā)展歷–EIA-232存在的問出現(xiàn)了互不兼容的連接器–EIA-兩對差分平衡信–EIA-兩根差分連線實現(xiàn)多節(jié)點、遠距離的高速互物理層接口規(guī) 4.3EIA-技術(shù)參–平衡差VB的電壓是VA的電壓值取反,信號電壓為(VA––邏輯<–邏輯>EIA-485的內(nèi)部電 4.4EIA-485的端口連半雙工連–廣泛采用,多個節(jié)點 條信號通–485總線收發(fā)器:如TTL信號與485信號的電平轉(zhuǎn)限流和過熱提高負載能EIA-485半雙工連EIA-485的端口連全雙工連–較少采用,信號的發(fā)送和接收各有自己的通–兩點連485驅(qū)動器 –多點連對網(wǎng)絡控制權(quán)進行管EIA-485的端口連EIA-232到EIA-485端口的轉(zhuǎn)–TTL到485的轉(zhuǎn) –232到TTL的轉(zhuǎn)MAX233–方向控制信號?高電平:232端口接收數(shù)?低電平:232端口發(fā)送工業(yè)計算機網(wǎng)絡與通 EIA-485的端口連EIA-232到EIA-485端口的轉(zhuǎn)EIA-485的網(wǎng)絡連網(wǎng)絡的機械電氣接–應用EIA-485的現(xiàn)場總線有 et–節(jié)點功能:發(fā)收數(shù)據(jù);報文識別;檢測通信錯誤網(wǎng)–總 、樹 、環(huán)–擴展網(wǎng)段的長度、擴展連接負載的數(shù)量:中繼EIA-485的網(wǎng)添加地–確保節(jié)點間形成電流通–接地電阻:限與接– 電電層一點接電–信 :光耦–電 :變壓器耦–大 :浮動電工業(yè)計算機網(wǎng)絡485網(wǎng)絡的主從式通信管4.6.1協(xié)–只有1個檢查報文地址并發(fā)出對主節(jié)點的從節(jié)點與從節(jié)點之間不能直接通–如:通用串行協(xié)議、Modbus–485網(wǎng)絡的主節(jié)點對485總線的占用進行管 485網(wǎng)絡的主從式通信管通用串行協(xié)–特EIA-485接口、主 技報文結(jié)–報文類周期性的報–傳遞I/O數(shù)非周期報–服務和診斷功能、不需應廣播報–從節(jié)點不需應 4.6485網(wǎng)絡的主從式通信管通用串行協(xié)–報文結(jié)起始標志+報文長度+地址域+數(shù)據(jù)域+校起始標志(1字節(jié)):固定為報文長度(1字節(jié)):即報文的最大長度為255字節(jié)–不包括起始標志和報文長度字節(jié)地址域(1字節(jié)–低5位(0~4位):從站地址–高3位(5~7位):報文類?標準報文、廣播報文、鏡像報文、特殊報文 4.6485網(wǎng)絡4.6.2串行協(xié)–報文結(jié)數(shù)據(jù)域(1~253字節(jié)–參數(shù)能碼–過程數(shù)據(jù)?主節(jié)點發(fā)出控?從節(jié)點傳校驗(1字節(jié)–校驗?每個字節(jié)按位異或運 4.6485網(wǎng)絡的主從式通信管4.6.3Modbus通信協(xié)–1979,Modicon公司開–特EIA-485接口、主 技報文結(jié)構(gòu)簡單、通信速率可達應答、–報文格RTU式、ASCII格主節(jié)點的查詢幀、從節(jié)點的應答 4.6.3Modbus通信報文幀格ASCII模RTU模式(以4T空閑時間開始和結(jié)束 4.6.3Modbus通信ASCII和RTU傳輸模式的特性 4.6.3Modbus通信兩種模式的比ASCII模式數(shù)據(jù)量是RTU模式的兩RTU用ASCI模式的字符之間可產(chǎn)生長達1sLRC(縱向冗余錯誤校驗256RTU格式被廣泛采 4.6.3Modbus通信LRC生成范例 02號從機的前8個線傳送的數(shù)據(jù)內(nèi)容為(ASCII碼)3AH30H32H30H31H30H30H30H30H30H30H38H46H35H0DH–LRC值計0BH以256為模,取余,仍為0BH的補碼為F5H,即為 4.6.3ModbusRTU格式報–前導標志碼、幀結(jié)束碼:4T空閑時–從節(jié)點地址域(8位):0~247(0-廣播地址–功能域(8位):常用–數(shù)據(jù)域(n個8位):報文最大長度為256個字數(shù)據(jù)說明(數(shù)據(jù)起始單元、數(shù)據(jù)數(shù)量等)+數(shù)–校驗域(16位從地址域開生成多項式 功能ReadCoil取得一組邏輯線圈的ReadInput取得一組開關輸入的ReadHoldingReadInputWriteSingle強置一個邏輯線圈的WriteSingleWriteMultiple強置一串連續(xù)邏輯線WriteMultipleModBus常用功能工業(yè)計 4.6.3Modbus通信主-從查詢- 4.6.3Modbus通信從設備的應答報–正常應答:–異常應改變功能碼(接收功能碼+0x80),并附異常–校驗錯誤:不應主設備的超時設–傳輸出 不存在的 RTU格式功能碼應用舉例--03ReadHolding RTU格式功能碼應用舉例--03ReadHolding RTU格式功能碼應用舉例--06WriteSingle RTU格式功能碼應用舉例--06WriteSingle RTU格式功能碼應用舉例--02ReadDiscrete RTU格式功能碼應用舉例--02ReadDiscrete RTU格式功能碼應用舉例--05WriteSingle 0x0000 0xFF00- RTU格式功能碼應用舉例--05WriteSingle RTU格式功能碼應用舉例--15WriteMultiple RTU格式功能碼應用舉例--15WriteMultiple 4.6.3ModbusPlus性–對介質(zhì) 控制方式:主從式、令牌超時重發(fā):兩重新接收下一信息:1.5T空閑時–中繼器、網(wǎng)橋連傳輸距離達1500m,可支持64個節(jié)–速率可達–報文最大字 4.6.3ModbusPlus通信協(xié)幀格–RTU格開頭碼+地址域+功能域+數(shù)據(jù)域+校驗域+結(jié) (2) (n) –ASCII格冒號+地址域+功能域+數(shù)據(jù)域+校驗域+回車換行(1)(2) (n) 實例 溫 系實例 顯示屏系 系統(tǒng)結(jié)
溫 系溫 模溫度傳感溫 系硬件組232/485轉(zhuǎn)換溫度傳感器溫 模塊PC 溫 系232/485原理連接無需外接電 溫 系溫度傳感器基本特測溫范圍:-55℃硬件連接:一線式總 溫 系溫度傳感器溫度值的數(shù)據(jù)格式:每個溫度用2個字節(jié)表 溫 系溫 模塊概測溫特支持DALLAS1-wire總線數(shù)字化溫度傳感操作說端子接線、地址設置、通訊網(wǎng)絡、通訊協(xié)測試程 溫 系溫 模塊端子接 溫 系溫 模塊地址設8個跳線設置,斷開為0,合上為如右圖,地32+8+2+1通訊網(wǎng)一臺上位機可帶128個模通信參 溫 系溫 模塊通信協(xié)議:Modbus協(xié) 溫 系溫 模塊通信協(xié)例如 17號模塊全部8個溫度溫溫 模塊-通信協(xié) 網(wǎng)工業(yè)計溫 系測試程序界初始溫 系初始準備好一幀報準備好一幀報發(fā)送發(fā)送一幀報是否收到一 文 NYN接收報文檢查正數(shù)據(jù)數(shù)據(jù)處 溫 系上位機的子程符;中斷方式接收一個字符;CRC 準備好一幀報文:欲傳送的有效數(shù)據(jù)保存在一數(shù)組InDat[]出口:按通信協(xié)議組織數(shù)據(jù),將InDat[]中的數(shù)據(jù)加入報頭、報尾、等,形成一幀新的報文暫存入另一數(shù)組SoData[]中。發(fā)送一幀報文:欲發(fā)送的一幀報文保存在一數(shù)組SoData[]出口:將SoData[] 溫 系上位機子程序構(gòu)接收報文檢查功能:從機地址檢查、CRC校驗SiForm[]出口SiForm[]中的報文若正確,函數(shù)返回值為0;數(shù)據(jù)處理功能:按功能碼不同,對SiForm[]中的報文執(zhí)行不同:校驗正確的接收報文保存在一數(shù)組SiForm[] 出口:提取溫度數(shù)據(jù),計算溫度值,保存、顯示、傳輸溫度值或執(zhí)行其它操作。 溫 系上位機子程序構(gòu)是否收到一 文 :串行口接收數(shù)據(jù)以中斷方式保存在一接收緩存區(qū)SiBuf[] ;否則返回值為0典型程序分定義Si_in為串行接收緩沖區(qū)SiBuf[]定義Si_out為串行接收緩沖區(qū)SiBuf[] int{int unsignedcharif((Si_in- 21為報文長度{/*printf("\n--->>> Si_in=%dfor(i=0; if(Si_out>= }}else{ return(flag); 工業(yè)計算機網(wǎng)絡與
溫 系初始初始N是否收到一 文YN接收報文檢查正數(shù)據(jù)數(shù)據(jù)處組織組織回應報發(fā)送回應報 溫 系下位機主循環(huán)程 printf("\n\nwaitASKINGframe..."); if{if(!check_frame())/*幀檢查,正確則返回0 if(略…) }}if { } 溫 系下位機子程序—報文處 unsignedchar case }}
/*獲取傳感器溫度數(shù)據(jù) 顯示屏系顯示1系顯示1單單片485機? 機? 單片顯示單片顯示n 口電PC側(cè):EIA-232與EIA-485接口轉(zhuǎn)單片機側(cè):TTL與EIA-485接口轉(zhuǎn)通信協(xié)議:自定 顯示屏系上位機與下位機的任務劃上位機(PC機集中管理:詢檢信息處理與傳下位機(單片機顯示信自診 顯示屏系通信協(xié)通信方主從式通信通信參異步、波特率為9600bps8位數(shù)據(jù)位、1位起始位、1位停止起始標志起始標志長度(從報頭至校驗字的所有字節(jié)接收方地址(1字節(jié)發(fā)送方地址(1字節(jié)數(shù)據(jù)校驗字R通 顯示屏系通信協(xié)報文類通用問訊報文(主機–無上送數(shù)據(jù)(從機–有上送數(shù)據(jù)(例:告警)(從機顯示信息傳送報文(主機–回應顯示信息報文(從機 通信協(xié)
顯示屏系通用問訊報文(主機012接收方地址(從3發(fā)送方地址(40x01(功能碼5CRC高字6CRC低字 顯示屏系通信協(xié)通用問訊應答報文(從機)—無上送012接收方地址(主機地址3發(fā)送方地址(從機地址45CRC高字6CRC低字 顯示屏系通信協(xié)通用問訊應答報文(從機)—有上送012接收方地3發(fā)送方地012接收方地3發(fā)送方地450x01(編號6CRC高字7CRC低字顯示屏系01012接收方地3發(fā)送方地45…89CRC高字網(wǎng)CRC低字 絡與通顯示數(shù)據(jù)傳送(主機顯示屏系通信協(xié)顯示數(shù)據(jù)傳送應答報文(從機)—接收012接收方地3發(fā)送方地45CRC高字6CRC低字 顯示屏系通信協(xié)顯示數(shù)據(jù)傳送應答報文(從機)—接收012接收方地012接收方地3發(fā)送方地45錯誤編6CRC高字7CRC低字 顯示屏系軟件構(gòu)頭文件、宏定義、全局變 、函主程子程序…子程序中斷服務 附錄 溫 系上位機程序:void
function SoData[6]=(unsignedchar)((crc&0xff00)>>8);SoDat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版四年級語文上冊習作《寫信》精美課件
- 【寫作提升】細致狀物(技法+素材+范文點評)(教案)四年級語文 部編版
- 福建省海濱學校、港尾中學2024年高三復習統(tǒng)一檢測試題數(shù)學試題
- 2024年鄭州客運從業(yè)資格證可以考幾次
- 2024年湖南客運企業(yè)安全員考試試卷
- 2024年十堰道路客運從業(yè)資格證考試
- 2024年昆明客運從業(yè)資格證模擬考試試題題庫及答案
- 2023年北京市初三一模道德與法治試題匯編:走向未來的少年章節(jié)綜合
- 吉首大學《民間美術(shù)圖形創(chuàng)新設計》2021-2022學年第一學期期末試卷
- 吉首大學《動物源食品加工專題》2021-2022學年第一學期期末試卷
- 醫(yī)院護理人文關懷實踐規(guī)范專家共識
- 中國農(nóng)業(yè)銀行貸后管理辦法
- MOOC 陶瓷裝飾·彩繪-無錫工藝職業(yè)技術(shù)學院 中國大學慕課答案
- 小學科學蘇教版四年級上冊全冊教案(2023秋新課標版)
- 信訪糾紛化解預案
- 硅晶圓缺陷的化學性質(zhì)與影響
- 《布的基本知識》課件
- (高清版)TDT 1031.6-2011 土地復墾方案編制規(guī)程 第6部分:建設項目
- 全國高中化學優(yōu)質(zhì)課大賽《氧化還原反應》課件
- 超聲波的基本性質(zhì)講解
- 生涯發(fā)展報告 (修改)
評論
0/150
提交評論