日韩有码毛片午夜在线看片?-成年日本片黄网站黄色大全免费-日韩高清中文字幕一二三区-日本女优熟女久久久久久久

工控機系統串口通訊設計技術(shù)要點(diǎn)匯總

作者:工業(yè)平板電腦|手持終端解決方案提供商    來(lái)源:www.chentaijichuan-bangkok.com    發(fā)布時(shí)間:2013-09-18 10:06    瀏覽量:

       工控機系統串口通訊設計技術(shù)要點(diǎn)匯總:工控系統通常由工控儀器和計算機終端組成,工控儀器和計算機終端之間通過(guò)符合RS-232協(xié)議的串口通訊,計算終端可以通過(guò)雙方既定的數據協(xié)議,向工控儀器查詢(xún)狀態(tài)信號和發(fā)送控制信號。

一、硬件協(xié)議:定義了RS-232串口的電氣規范。

1)DTE/DCE:一般把工控儀器稱(chēng)為DCE,計算機終端稱(chēng)為DTE,設備之間通過(guò)RS-232電纜連接,DCE端采用母連接器(有槽),DTE端采用公連接器(有針)。但如果工控儀器和計算機終端都采用公連接器,則兩者都是DTE設備,它們之間的連接應采用零調制解調器方式。 2)RS-232信號:標準的RS-232管腳通常有D-25PIN和D-9PIN兩種類(lèi)型,常用的信號如下:信號分類(lèi) D-9PIN D-25PIN 信號名稱(chēng) 信號縮寫(xiě) 信號方向 數據信號 3 2 數據傳輸 TD DTE->DCE 2 3 接收數據 RD DTE<-DCE 控制信號 7 4 請求發(fā)送 RTS DTE<-DCE 8 5 清除發(fā)送 CTS DTE<-DCE 6 6 數據發(fā)送就緒 DSR DTE<-DCE 1 8 載波檢測 CD DTE<-DCE 4 20 數據終端就緒 DTR DTE->DCE 9 22 振鈴指示 RI DTE<-DCE 接地信號 5 7 接地信號 GND

3)零調制解調連接(ZERO MODEM): ZERO MODEM處理DTE和DTE設備的對稱(chēng)連接,其連接原理為,一方的傳送數據信號為另一方的接收數據信號,一方的控制請求信號為另一方的控制應答信號,接地信號互連。連接示意如下:信號分類(lèi) DTE DTE 數據信號 TD-- RD RD-- TD 控制信號 RTS-- CTS CTS-- RTS (DSR-DCD-RI)-- DTR DTR-- (DSR-DCD-RI ) 接地信號 GND-- GND

二、軟件協(xié)議:定義了DTE的串口配置,DTE和DCE之間連接協(xié)議和數據傳輸協(xié)議。

1)串口參數配置: 波特率(BaudRate):在CBR_110到CBR_256000之間指定,參照儀器指定 數據位(ByteSize):每個(gè)字節的位數,一般用7或8,默認為8 停止位(StopBits):停止位的位數,一般有:ONESTOPBIT、TOWSTOPBITS、ONE5STOPBITS,默認為ONESTOPBIT 奇偶校驗(Parity): 定義了奇偶校驗的模式,一般有:NO_PARITY、EVEN_PARITY、ODD_PARITY,默認NO_PARITY 流量控制(FlowCtrl):定義了流量控制方式,一般有:無(wú)控制、硬件方式、XON/XOFF方式,詳見(jiàn)握手協(xié)議。

2)握手協(xié)議:常見(jiàn)有硬件方式RTS/CTS和DTR/DSR方式,軟件方式有XON/XOFF和自定義的方式。 RTS/CTS:對于DTE來(lái)說(shuō),設置OutCtsFlow則CTS低水平位時(shí)停止輸出,直至高水平位時(shí)恢復輸出。設置RtsControl為HANDSHAKE則當輸入緩沖區數據小于1/4時(shí),DTE將RTS置為高水平位,通知DCE可以傳輸數據,當輸入緩沖區數據大于3/4時(shí),DTE將RTS置為低水平位,通知DCE停止傳輸數據。DTE(計算機)的緩沖區較大,通常都將RtsControl設置位ENABLE,即保持高水平位。 DTR/DSR:對于DTE來(lái)說(shuō),設置OutDsrFlow則DSR低水平位時(shí)停止輸出,直至高水平位時(shí)恢復輸出。設置DtrControl為HANDSHAKE則當DTR設置為高水平位時(shí)容許數據輸入,當DTR為低水平位時(shí)阻止數據輸入。DTE(計算機)的緩沖區較大,通常都將DtrControl設置位ENABLE,即保持高水平位。 XON/XOFF:對于DTE來(lái)說(shuō),設置OutX時(shí),輸出流在DTE收到XoffChar時(shí)停止,在收到XonChar時(shí)恢復。設置InX時(shí),輸入流在緩沖區空閑不足XoffLim時(shí)DTE發(fā)送XoffChar,通知DCE中止傳輸數據。當輸入流達到緩沖區空閑超過(guò)XonLim時(shí),DTE發(fā)送XonChar,通知DCE恢復傳輸數據。

三、編程模式: 在WIN32環(huán)境中,串口作為文件訪(fǎng)問(wèn),但與其他文件不同,串口文件的操作是采用阻塞方式的,讀寫(xiě)動(dòng)作通常會(huì )在后臺阻塞,用戶(hù)可以通過(guò)響應串口事件,獲知端口狀態(tài)和控制讀寫(xiě)動(dòng)作。因此在WIN32環(huán)境中處理串口,應采用重疊I/0機制訪(fǎng)問(wèn)串口文件和在線(xiàn)程中完成讀寫(xiě)操作,這樣意味著(zhù)當讀寫(xiě)線(xiàn)程阻塞時(shí),不會(huì )使主線(xiàn)程鎖定而失去響應。

1、串口文件操作方式:根據如上要求,串口一般采用獨占和重疊方式打開(kāi),如:CreateFile(_T("\\\\.\\COM1"),/*端口名稱(chēng)*/ GENERIC_READ|GENERIC_WRITE,/*文件可讀寫(xiě)*/ 0,/*獨占方式*/ NULL,/*無(wú)權限屬性*/ OPEN_EXISTING,/*端口必須存在*/ FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,/*重疊的操作方式*/ NULL/*不支持臨時(shí)文件*/)。有效的串口文件打開(kāi)后,可以進(jìn)行重疊的讀寫(xiě)操作,其中要使用一個(gè)重疊操作結構OVERLAPPED: struct { DWORD Internal; /*內部使用*/ DWORD InternalHigh; /*內部使用*/ DWORD Offset; /*操作開(kāi)始的文件位置(低位),串口文件不支持*/ DWORD OffsetHigh;/* 操作開(kāi)始的文件位置(高位),串口文件不支持*/ HANDLE hEvent; /*異步事件句柄,重疊操作完成或中斷時(shí)被激發(fā)*/ } OVERLAPPED; 寫(xiě)串口的方式如下: WriteFile(hCom,/*串口文件句柄*/ (void*)data,/*數據指針*/ dwDataBytes,/*請求寫(xiě)的數據字節數*/ &dwOperaBytes,/*函數返回的已寫(xiě)的字節數,在重疊I/O中通常返回0*/ &ov/*重疊操作結構指針*/); 讀串口的方式如下: ReadFile(hCom,/*串口文件句柄*/ (void*)buf,/*緩沖區指針*/ dwDataBytes,/*請求讀的數據字節數*/ &dwOperaBytes,/*函數返回的已讀的字節數,在重疊I/O中通常返回0*/ &ov/*重疊操作結構指針*/); 重疊方式調用讀寫(xiě)函數后即返回,程序稍后調用等待事件函數進(jìn)入阻塞狀態(tài),直至異步事件被激發(fā),調用方式如下: WaitForSingleObject(hEvent,/*OVERLAPPED中異步事件句柄*/ dwTimeouts/*讀寫(xiě)超時(shí)毫秒數*/) 讀寫(xiě)超時(shí)設置可以由串口配置超時(shí)參數COMMTIMEOUTS獲得,讀超時(shí)數 =ReadTotalTimeoutMultiplier * 讀字節數 + ReadTotalTimeoutConstant; 寫(xiě)超時(shí)數 =WriteTotalTimeoutMultiplier * 寫(xiě)字節數 + WriteTotalTimeoutConstant; 異步事件返回后,可以調用重疊I/O查詢(xún)函數查看后臺讀寫(xiě)狀況: GetOverlappedResult(hCom, /*端口文件句柄*/ &ov, /*重疊結構指針*/ &dwOperaBytes, /*重疊操作完成的字節數*/ FALSE/*是否需要等待重疊操作完成*/); 以上時(shí)串口文件的操作方式,需要注意的是,這些操作除了打開(kāi)文件外,其他都應當在某個(gè)讀寫(xiě)線(xiàn)程中調用,讓線(xiàn)程在后臺阻塞,主線(xiàn)程保持響應。

2、端口事件偵聽(tīng):WIN32提供串口事件查詢(xún)函數用以查看端口觸發(fā)的事件,端口可偵聽(tīng)事件一般有: EV_BREAK :端口中斷信號 EV_CTS :CTS信號改變 EV_DSR :DSR信號改變 EV_RXCHAR :收到一個(gè)或多個(gè)字符 EV_RXFLAG :收到特殊字符 EV_ERR :端口錯誤信號 EV_TXEMPTY:輸出緩沖區數據發(fā)送完成可以通過(guò)SetCommMask(hCom/*端口文件句柄*/,dwMask/*事件組合*/)來(lái)設置需要偵聽(tīng)的事件,然后應采用重疊模式調用查詢(xún)事件函數:WaitCommEvent;

更多工控機產(chǎn)品資訊、新工控機行業(yè)新聞、如何挑選嵌入式工控機等知識歡迎訪(fǎng)問(wèn)網(wǎng)站相關(guān)板塊內容。、、如新新新新 

企業(yè)分站 在線(xiàn)客服 :     服務(wù)熱線(xiàn): 025-86136252 / 15062244194     電子郵箱: [email protected]

公司地址:江蘇省南京市江寧區未來(lái)科技城

研維信息是一家集研發(fā)、生產(chǎn)、銷(xiāo)售為一體的工控機、嵌入式安裝工業(yè)平板電腦、加固手持平板電腦、加固類(lèi)三防計算機的專(zhuān)業(yè)設備提供商,提供各種尺寸和規格的安裝式工業(yè)平板電腦,手持三防平板電腦,加固三防計算機。核心研發(fā)及市場(chǎng)團隊均有10余年的相關(guān)行業(yè)背景,尤其是公司的ODM團隊,可以為客戶(hù)提供快速、質(zhì)優(yōu)、靈活的客戶(hù)定制化產(chǎn)品OEM及ODM服務(wù),公司對員工及客戶(hù),都一直秉承合作共贏(yíng)、以德為先的經(jīng)營(yíng)宗旨,為客戶(hù)提供優(yōu)質(zhì)產(chǎn)品及服務(wù),提升客戶(hù)價(jià)值。

關(guān)注研維微信公眾號,掌握工控行業(yè)最新動(dòng)態(tài)資訊
備案號:蘇ICP備14059761號-8
主營(yíng)區域:北京、江蘇、浙江、上海、安徽、山東、四川、廣東、福建、天津、河北、河南、湖南、湖北、陜西、山西、遼寧、吉林、江西、黑龍江、重慶、內蒙古、廣西、海南、貴州、云南、新疆、甘肅、寧夏、青海、西安、成都、深圳、杭州、蘇州、廣州、武漢、青島、東莞、珠海、寧波、鄭州
聲明:(1)本站遵循《中華人民共和國廣告法》,在標題、頁(yè)面等文案描述中盡量規避違禁詞、極限詞,如還有違禁詞、極限詞,在此申明上述詞匯表述全部失效,如客戶(hù)咨詢(xún)均表示默認此條款,不支持任何形式以違禁詞、極限詞等理由投訴或要求收取費用私下解決,特此申明!(2)除非研維公司另行申明,本網(wǎng)站內的所有產(chǎn)品、技術(shù)、軟件、程序、數據及其他信息(包括文字、圖標、圖片、照片、音頻、視頻、圖標、色彩組合、版面設計等)的所有權利(包括版權、商標權、專(zhuān)利權、商業(yè)秘密及其他相關(guān)權利)均歸研維公司所有。未經(jīng)研維公司的許可,任何人不得以包括通過(guò)機器人、人力等程序或設備監視、復制、傳播、展示、鏡像、上載、下載等方式擅自使用本網(wǎng)站的任何內容。一旦發(fā)現侵權行為,我司將立即進(jìn)行證據保全并訴諸法律。
在線(xiàn)客服