国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

串口傳輸數(shù)字圖像

2015-05-30 12:59:30夏玉潔
中國新通信 2015年20期
關(guān)鍵詞:多線程

夏玉潔

【摘要】 隨著現(xiàn)代信息技術(shù)的發(fā)展以及計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用,計(jì)算機(jī)通信技術(shù)以及日趨成熟,串口通信是一種靈活方便可靠的通信方式。本文通過VC++軟件的MSComm控件編程來控制PC與PC串口之間的數(shù)據(jù)傳輸加以說明,采用虛擬串口的方式在一臺PC機(jī)上的不同串口之間傳輸數(shù)據(jù)。

【關(guān)鍵詞】 串行通信 MSComm控件 多線程 虛擬串口 VC++

一、引言

串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從CPU經(jīng)過串行端口發(fā)送出去時,字節(jié)數(shù)據(jù)轉(zhuǎn)換成串行的位。接收數(shù)據(jù)時,串行的位轉(zhuǎn)換為字節(jié)數(shù)據(jù)。串行技術(shù)應(yīng)用廣泛,如遠(yuǎn)程監(jiān)控,工業(yè)自動化和軟件通信等多個領(lǐng)域。

二、串口通信的原理分析

2.1 基于WINDOWS的VC++串行通信編程

利用VC++編制串行通信程序有三種方法:

一是采用Win32應(yīng)用程序編程接口(API)所提供的串口通信函數(shù),用SDK思路編寫;

二是用ActiveX通信工件MSComm開發(fā)串行通信程序;

三是采用C++的MFC思路,將Win32串口通信的API函數(shù)封裝在一個類中實(shí)現(xiàn)通信。

2.2串行接口標(biāo)準(zhǔn)

串行通信線路連接數(shù),要解決兩個問題:

一是計(jì)算機(jī)與外設(shè)之間的物理接口標(biāo)準(zhǔn),屬于OSI中的物理層,包括RS-232、RS-422及RS-485標(biāo)準(zhǔn)等。

二是按接口標(biāo)準(zhǔn)設(shè)置計(jì)算機(jī)與外設(shè)之間串行通信的接口電路。

三、串口通信整體設(shè)計(jì)方案

3.1 面向?qū)ο蟮乃枷?/p>

面向?qū)ο蟮乃枷胧前研畔⑾到y(tǒng)本身看作是一系列離散的對象的集合,這些對象包括數(shù)據(jù)結(jié)構(gòu),及數(shù)據(jù)結(jié)構(gòu)的操作或行為。若對象之間由事件觸發(fā),引起互通消息實(shí)現(xiàn)互操作,設(shè)計(jì)出的軟件是模塊化的,可擴(kuò)充和可移植的。

面向?qū)ο蟮某绦蛟O(shè)計(jì)以“對象”和“數(shù)據(jù)結(jié)構(gòu)為中心,用“對象”表現(xiàn)事物,用“類”表示對象的抽象,用“消息傳遞”表現(xiàn)事物的相互聯(lián)系,少用“方法”表現(xiàn)處理事物的過程。

3.2 VC下的32位串口應(yīng)用程序

Windows32位下的串口應(yīng)用程序用3種方法實(shí)現(xiàn): MSComm控件;用API通信函數(shù)或者CSerialPort類。

3.2.1使用MSComm控件方法

VC++6.0提供的MSComm控件通過串口端口發(fā)送和接收數(shù)據(jù),為程序提供串口通信功能。在當(dāng)前對話框中插入MSComm控件,然后在ClassWizard中為創(chuàng)建的通信控件定義一個成員對象(CMSComm m_Com),通過該成員對象即可設(shè)置MSComm控件屬性。

MSComm控件需要設(shè)置常用屬性,即初始化串口,打開串口,讀寫串口。

3.2.2使用32位的API通信函數(shù)

在VC++6.0下,MFC應(yīng)用程序線程用CWinThread對象表示。VC++把線程分成兩種:用戶界面線程和工作者線程。用戶界面線程提供界面和用戶交互,用于處理用戶輸入及其相應(yīng)的各種事件和消息,工作線程處理程序的后臺任務(wù)。在MainFrm.cpp中定義全局變量,然后在程序中創(chuàng)建一個串口,進(jìn)行相應(yīng)的串口參數(shù)設(shè)置,啟動一個工作者線程,用來監(jiān)視串口狀態(tài),看有無數(shù)據(jù)到達(dá)、通信有無錯誤;用戶界面線程可專心進(jìn)行數(shù)據(jù)處理、提供友好的用戶界面,最后為工作者線程編寫一個全局函數(shù),主要完成數(shù)據(jù)接收工作。

3.3 圖像傳輸設(shè)計(jì)方案

利用MATLAB軟件將一幅圖像轉(zhuǎn)換成矩陣,然后用串口輸出,從COM1輸入圖像矩陣并發(fā)送,在COM2端可以接受到該圖像矩陣,通過MATLAB還原可以得到原圖像。用虛擬串口軟件VSPD模擬串口,同時添加一對虛擬串口是設(shè)定通過非MODE(三線制)串口連接線連接在一起的,像兩個真實(shí)的物理串口可以進(jìn)行通信,可節(jié)約成本,提高連接的可靠性。

四、結(jié)束語

實(shí)驗(yàn)表明,通過MSComm控件通過串口端口可以實(shí)現(xiàn)發(fā)送和接收圖像數(shù)據(jù),在傳輸過程中可實(shí)時進(jìn)行更新顯示,圖像傳輸后將其保存為BMP格式文件,可以進(jìn)行后續(xù)處理使用。

參 考 文 獻(xiàn)

[1]李長林 高潔,Visual C++串口通信技術(shù)與典型實(shí)例,清華大學(xué)出版社,ISBN 7-302-12903-7,2006-05-01.

[2]陳淑珍,石波.基于Windows多線程環(huán)境下的串口通信[J].計(jì)算機(jī)工程與設(shè)計(jì),2000-3.

[3]田敏 鄭瑤 李江全.Visual C++數(shù)據(jù)采集與串口通信測控應(yīng)用實(shí)踐,人民郵電出版社.ISBN978-7-115-22611-2,2010-6.

[4]李現(xiàn)勇,Visual C++串口通信技術(shù)與工程實(shí)踐(第二版).人民郵電出版社.ISBN7-115-12344-6/TP.4021,2004-7

猜你喜歡
多線程
Java多線程同步機(jī)制在網(wǎng)絡(luò)售票系統(tǒng)中的應(yīng)用
科技資訊(2016年29期)2017-02-28 09:30:34
Java并發(fā)工具包對并發(fā)編程的優(yōu)化
基于多線程文件傳輸關(guān)鍵技術(shù)研究與實(shí)現(xiàn)
網(wǎng)頁爬蟲技術(shù)的關(guān)鍵技術(shù)研究探索
一種基于多線程的高速磁盤鏡像算法
iOS并發(fā)程序設(shè)計(jì)中幾種方法的特點(diǎn)及使用技巧研究
HTM L5 Web WOrker技術(shù)及應(yīng)用研究
電站鍋爐煤粉參數(shù)遠(yuǎn)程監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
一種高并發(fā)認(rèn)證服務(wù)器的實(shí)現(xiàn)
一種低開銷的并行重復(fù)數(shù)據(jù)刪除算法
武川县| 兴文县| 西乌| 嘉义市| 略阳县| 迭部县| 靖边县| 南平市| 张家口市| 安岳县| 满城县| 安仁县| 双流县| 鄂温| 达拉特旗| 徐闻县| 吴川市| 阳山县| 左贡县| 葵青区| 昌都县| 峨眉山市| 渝中区| 安宁市| 大冶市| 枣阳市| 宁陵县| 东阿县| 安平县| 夹江县| 怀宁县| 浪卡子县| 格尔木市| 平顶山市| 于都县| 轮台县| 莆田市| 道孚县| 南投县| 堆龙德庆县| 新绛县|