亚洲熟妇av日韩熟妇在线_大陆熟妇丰满多毛xxxx_精品久久久bbbb人妻_少妇被黑人到高潮喷出白浆_亚洲精品无码久久久影院相关影片

行業(yè)動態(tài)

當(dāng)前位置:首頁>>新聞中心>>行業(yè)動態(tài) 發(fā)布時間:2017-07-27 06:36:09

基于串行通信的電子秤實(shí)時數(shù)據(jù)采集技術(shù)研究

時間:2017-07-27 06:36:09 來源:本站 點(diǎn)擊數(shù):746

在計算機(jī)與外部設(shè)備通信的過程中,計算機(jī)通過串行接口實(shí)時采集外部設(shè)備發(fā)送來的數(shù)據(jù) 是非常重要的通信方式之一,本文以計算機(jī)通過串行接口實(shí)時采集電子秤的數(shù)據(jù)為例,詳細(xì)論述了計算機(jī)串行通信的基本原理、電子秤的通信協(xié)議以及電子秤數(shù)據(jù)解碼,重點(diǎn)論述了利用串行口控件 MSCOM實(shí)現(xiàn)實(shí)時采集電子秤數(shù)據(jù)的通用方法。

1. 

隨著計算機(jī)的普及與外圍設(shè)備技術(shù)的發(fā)展,計算機(jī)與外圍設(shè)備之間的通信顯得越來越重要,串行口通 信是目前計算機(jī)與外圍設(shè)備之間的重要的通信方式之一。由于串行通信是在一根傳輸線上一位一位的傳送 數(shù)據(jù),其優(yōu)點(diǎn)是使用的傳輸線少,速度快,適合于遠(yuǎn)距離傳輸。但對于那些與計算機(jī)相距不遠(yuǎn)的人一機(jī)交 換設(shè)備和串行存儲的外部設(shè)備如終端、打印機(jī)、邏輯分析儀、磁盤等外部設(shè)備,采用串行方式交換數(shù)據(jù)也 很普遍。在計算機(jī)對外部設(shè)備的實(shí)時控制中,大多采用計算機(jī)的串行接口與外部設(shè)備進(jìn)行通信,所以串行 接口是計算機(jī)應(yīng)用系統(tǒng)中常用的接口,而相應(yīng)的接口應(yīng)用程序也成為近年來研究的熱點(diǎn)。本文旨在通過計 算機(jī)串行接口實(shí)時采集電子秤的數(shù)據(jù)的實(shí)現(xiàn),論述串行口通訊的原理以及如何利用串行口通信控件 MSCOM開發(fā)計算機(jī)的基于串行口的應(yīng)用軟件。

本文在Visual Basic 6.0開發(fā)環(huán)境中利用Microsoft Communication控件實(shí)現(xiàn)計算機(jī)與電子秤的串行通 信。成功地實(shí)現(xiàn)了計算機(jī)實(shí)時采集電子秤的數(shù)據(jù),并通過對采集到的數(shù)據(jù)進(jìn)行解碼處理并實(shí)時地將數(shù)據(jù)顯 示于計算機(jī)應(yīng)用軟件上。

2.串行通訊的基本原理

2.1串行通信原理

串行通信是指外部設(shè)備和計算機(jī)之間使用一根數(shù)據(jù)信號線,數(shù)據(jù)在一根數(shù)據(jù)信號線上按位進(jìn)行傳輸,每 一位數(shù)據(jù)都占據(jù)一個固定的時間長度。但是由于高速率的要求,處于計算機(jī)內(nèi)部的CPU與串口之間的通訊 仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實(shí)現(xiàn)CPU與外圍數(shù)據(jù)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換(或者稱為串 并轉(zhuǎn)換器)和控制信息(起始位和終止位插入和刪除,即當(dāng)數(shù)據(jù)從外圍設(shè)備輸入計算機(jī)時,數(shù)據(jù)格式由 (Bit)轉(zhuǎn)化為字節(jié)Byte)數(shù)據(jù),并將相應(yīng)的控制信息刪除;反之,當(dāng)計算機(jī)發(fā)送數(shù)據(jù)到外圍設(shè)備時,串 口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位串?dāng)?shù)據(jù),并將控制信息插入到位串?dāng)?shù)據(jù)隊列。

為實(shí)現(xiàn)串行通信,計算機(jī)的串行口內(nèi)部結(jié)構(gòu)設(shè)計如圖1所示,它是個雙緩沖的串行接口,包括一個發(fā) 送緩沖區(qū)SBUF)和一個接收緩沖區(qū)(SBUF),可以同時進(jìn)行數(shù)據(jù)的發(fā)送和接收,當(dāng)計算機(jī)需要向外部設(shè)備發(fā)送數(shù)據(jù)時,CPU首先將數(shù)據(jù)送入SBUF中,然后串行口一位一位向外發(fā)送,當(dāng)一個字節(jié)全部發(fā)送后,串 行口發(fā)出中斷請求,CPU向緩沖區(qū)SBUF發(fā)送下一個字節(jié)的數(shù)據(jù);計算機(jī)接收數(shù)據(jù)時,串行口一位一位將從 外部接收的數(shù)據(jù)送入緩沖區(qū),當(dāng)一個字節(jié)的數(shù)據(jù)全部接收完以后,向CPU發(fā)出一個中斷請求,CPU將緩沖 區(qū)的數(shù)據(jù)取走,然后接收下一個字節(jié)數(shù)據(jù)。計算機(jī)的串行口與特定的定時器綁定在一起,通過該定時器可 以設(shè)置計算機(jī)串行口發(fā)送和接收的波特率,以適用不同的外部設(shè)備。

云網(wǎng)客1.jpg

串行口的典型代表是RS-232C及其兼容接口,有9針和25針兩類。現(xiàn)在的臺式PC機(jī)一般有三個RS 232串行口 COM1、COM2COM3,通常COM1COM2都使用的是9D形連接器,而COM3 使用DB25針連接器。其中九針的串行口各針定義如表1所示.

云網(wǎng)客2.jpg

當(dāng)計算機(jī)通過串行口與外部設(shè)備進(jìn)行通信時,首先將計算機(jī)串行口 TXB引腳與外部設(shè)備串行口的RXB 引腳相連,然后將計算機(jī)的串行口RXD引腳與外部設(shè)備的串行口 TXD引腳相連[1]。計算機(jī)串行口與外部設(shè)備串行口連接方式如圖2所示。

云網(wǎng)客3.jpg

在本文中,以XK3100 B2+的電子秤為例,該電子秤帶有一個9針的RS-232C串行接 口,能與計算機(jī)進(jìn)行串口數(shù)據(jù)通信,并實(shí)時傳送檢測數(shù)據(jù)到計算 機(jī)。連接時,將連接電子秤串行口和計算機(jī)串行口的兩個接頭按 23,32的方式連接,如需要做到實(shí)時接收數(shù)據(jù),還要將電 子秤的發(fā)送模式調(diào)到數(shù)據(jù)穩(wěn)定后自動發(fā)送狀態(tài)。

VB6.0環(huán)境下,米用Microsoft Communication控件來實(shí)現(xiàn)計算機(jī)與電子秤之間串行通信,進(jìn)行串行 通信時只需了解以下四根線的代號及作用。以下四根線的高電平/低電平狀態(tài)分別對應(yīng)MSComm控件的相 應(yīng)屬性的True/False值。

DTR線:計算機(jī)中數(shù)據(jù)發(fā)往電子秤,表示計算機(jī)是否已準(zhǔn)備好。

RTS線:計算機(jī)中數(shù)據(jù)發(fā)往電子秤,表示計算機(jī)是否允許電子秤發(fā)回數(shù)據(jù)。

DSR線:電子秤中數(shù)據(jù)發(fā)往計算機(jī),表示電子秤是否已做好操作準(zhǔn)備。

CTS線:電子秤中數(shù)據(jù)發(fā)往計算機(jī),表示電子秤是否允許發(fā)送數(shù)據(jù)。

2.2通信方式

VB6.0環(huán)境下,計算機(jī)與外部設(shè)備有兩種通訊方式

1、事件驅(qū)動,它是一種功能強(qiáng)大的處理問題的方法。在實(shí)際工作中,往往要處理許多通信中的相關(guān)事件,例如:當(dāng)線路數(shù)據(jù)到達(dá)計算機(jī)端或RTS信號線狀態(tài)發(fā)生變化時,要求我們使用相應(yīng)的事件來跟蹤和處 理,該控件是使用OnComm事件來實(shí)現(xiàn)的,主要包括檢測、數(shù)據(jù)處理和通信錯誤等方面的問題,CommEvent 值返回最近的通信事件或錯誤的數(shù)字代碼。

2、查詢方式。由程序設(shè)計者負(fù)責(zé)讀取CommEvent的值并處理所發(fā)生的錯誤或事件。通常簡單的應(yīng)用 程序設(shè)計可采用這種辦法。

2.3串行通信控件的屬性

利用串行通信控件設(shè)計通信程序,關(guān)鍵是準(zhǔn)確理解和設(shè)置串行通信控件的屬性。在VB6.0AcdveX MSCOMM.VBX提供了 27個關(guān)于通信控件方面的屬性,下面就部分屬性分別予以描述:

CommPort屬性:設(shè)置并返回通訊端口號。

RThreshold 屬性:在 MSComm 控件設(shè)置 CommEvent 屬性為 comEvReceive 并產(chǎn)生 OnComm 之前,設(shè)置并返回的要接收的字符數(shù)。

CTSHolding屬性:確定是否可通過查詢Clear To Send (CTS)線的狀態(tài)發(fā)送數(shù)據(jù)。Clear To Send是調(diào)制解調(diào)裝置發(fā)送到相聯(lián)計算機(jī)的信號,指示傳輸可以進(jìn)行。該屬性在設(shè)計時無效,在運(yùn)行時為只讀。 SThreshold屬性:MSComm控件設(shè)置CommEvent屬性為ComEvSend并產(chǎn)生OnComm事件之前,設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù)。

CDHolding屬性:通過查詢Carrier Detect (CD)線的狀態(tài)確定當(dāng)前是否有傳輸。Carrier Detect是從調(diào)制解調(diào)裝置發(fā)送到相聯(lián)計算機(jī)的一個信號,指示調(diào)制解調(diào)裝置正在聯(lián)機(jī)。該屬性在設(shè)計時無效,在運(yùn)行時 為只讀。

DSRHolding屬性:確定Data Set Ready (DSR)線的狀態(tài)。Data Set Ready信號由調(diào)制解調(diào)器發(fā)送到相連計算機(jī),指示作好操作準(zhǔn)備。該屬性在設(shè)計時無效,在運(yùn)行時為只讀。

Settings屬性:設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位參數(shù)。

InputLen屬性:設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù)。

EOFEnable屬性:確定在輸入過程中MSComm控件是否尋找文件結(jié)尾EOF)字符。如果找到EOF 字符,將停止輸入并激活OnComm事件,此時CommEvent屬性設(shè)置為comEvEOF。

3.電子秤的串口通信協(xié)議

本文使用的電子秤是XK3100-B2+型,其串口數(shù)據(jù)通信協(xié)議規(guī)定

如下:

①數(shù)據(jù)傳輸速率可設(shè)置為9600bp、4800bps2400bps

②數(shù)據(jù)格式:電子秤采用通用的RS232 UART信號,每10BIT為一個數(shù)據(jù)幀,幀格式如表2所示.

云網(wǎng)客4.jpg

云網(wǎng)客5.jpg

4.電子秤實(shí)時數(shù)據(jù)釆集的實(shí)現(xiàn)

VB6.0環(huán)境下通過串行通訊實(shí)現(xiàn)電子秤實(shí)時數(shù)據(jù)采集。

4.1數(shù)據(jù)的采集

在設(shè)計好計算機(jī)與電子秤的物理連接后,接著設(shè)計應(yīng)用軟件實(shí)時采集電子秤的稱重數(shù)據(jù),在VB6.0 新建一個標(biāo)準(zhǔn)EXE”工程,然后選擇工程/部件菜單項(xiàng),在部件對話框中選擇“Microsoft Comm Control 6.0”,即可添加MSComm控件;再在窗體中依次布置如表3所示的控件并設(shè)置其屬性。

為了只要打開此窗口即可接收數(shù)據(jù),在Form窗口的程序代碼如下:

Private Sub Form_Load()

MSComm 1. CommPort = 1 ‘使用

串口 1

MSComm 1.PortOpen = True ‘打 開串口 1

MSComm 1 .RThreshold = 1 ‘接收 數(shù)據(jù)后產(chǎn)生OnComm事件 End Sub

在設(shè)置完上面的程序后就可以進(jìn)行數(shù) 據(jù)采集,根據(jù)電子秤的協(xié)議規(guī)定電子秤一 次傳輸?shù)氖?/span>6幀數(shù)據(jù),而在接收數(shù)據(jù)后是 采用的16進(jìn)制將數(shù)據(jù)存放的,將它存放到字符串HData中,以便在下個步驟中對數(shù) 據(jù)進(jìn)行處理并顯示于計算機(jī)的屏幕中。

云網(wǎng)客6.jpg

4.2數(shù)據(jù)解碼處理

根據(jù)電子秤發(fā)送的第二幀數(shù)據(jù)D3D4位的取值決定電子秤的稱重模式,其稱重模式分別是00 重模式;01計數(shù)模式;10百分比模式.根據(jù)第二幀數(shù)據(jù)的不同取值,分別對字符串進(jìn)行處理,如表4 示。然后將第三幀(顯示數(shù)值的最低字節(jié))、第四幀(顯示數(shù)值的中間字節(jié))、第五幀(顯示數(shù)值的最高字節(jié))解碼成十進(jìn)制數(shù);并根據(jù)第六幀數(shù)據(jù)的值確定本次稱重是以公斤00H)為單位還是磅01H) 單位。最后將解碼后的數(shù)據(jù)顯示于計算機(jī)屏幕上。數(shù)據(jù)解碼流程示意圖如圖3所示。

云網(wǎng)客7.jpg

當(dāng)一次稱重過程結(jié)束,可以繼續(xù)下一次的稱重,在程序設(shè)計過程中必須用程序設(shè)置計算機(jī)接收的波特 率。以保證計算機(jī)的接收的波特率和電子秤發(fā)送波特率相一致,不然會造成數(shù)據(jù)的丟失。

5.結(jié)束語

本文主要論述了基于串行通信的電子秤實(shí)時數(shù)據(jù)采集原理和實(shí)現(xiàn)方法,重點(diǎn)探討了如何利用高級語言 通過串行接口控制外部設(shè)備以實(shí)時采集數(shù)據(jù),并將采集到的數(shù)據(jù)解碼成用戶所需的數(shù)據(jù)。很好地解決了電 子秤數(shù)據(jù)的實(shí)時采集,該方法具有很好的實(shí)用性和通用性,不同的電子秤只需修改解碼參數(shù)就可以適用。

 


国产亚洲人成网站在线观看| 香港台湾经典三级a视频| 国产18禁黄网站免费观看| 含紧一点h边做边走动免费视频| 成品人视频ww入口| 免费观看又色又爽又湿的视频| 亚洲国产成人精品女人久久久| 天堂а√中文在线官网| 亚洲中文字幕无码专区| 国产在线精品一区二区三区| 白嫩少妇激情无码| 久久久久无码国产精品一区| 爆爽久久久一区二区又大又黄又嫩| 大学生高潮无套内谢视频| 精品人妻系列无码人妻漫画| 最近2019年好看中文字幕视频| 欧美性生恔xxxxxdddd| 国产综合无码一区二区色蜜蜜| 欧美中日韩免费观看网站| 亚洲欧美精品无码一区二区三区| 国产精品国产三级国产av中文| 免费观看av福利片| 久久人人爽人人人人片| 亚洲av成人无码网站在线| 一本久道中文无码字幕av| 狠狠躁夜夜躁人人爽天天不卡| 国产人成视频在线视频| 亚洲熟妇久久国产精品| 亚洲av无码国产综合专区| 又色又爽又高潮免费观看| 久久精品中文字幕无码| 97伦伦午夜电影理伦片| 影音先锋色小姐| 亚洲色成人一区二区三区小说| 无码中文字幕乱在线观看| 精品无码一区二区三区亚洲桃色| 青青草原综合久久大伊人精品| 久久精品夜色噜噜亚洲a∨| 玩弄中年熟妇正在播放| 蜜臀av色欲a片无码精品一区| 亚洲av成人无码网站大全|