999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab和AVR單片機的串行數據通信設計

2012-04-29 19:03:09伊磊聶歡歡劉任平
計算機時代 2012年3期

伊磊 聶歡歡 劉任平

摘要:介紹了基于Matlab和AVR單片機通過PC機進行通信的方法。通過Matlab下的通信類Serial類元件庫實現串行通信,并利用AVR單片機對采集到的數據進行相應處理。

關鍵詞: 串行通信; Serial類對象; AVR單片機; Matlab串行通信

中圖分類號:TP919文獻標志碼:A 文章編號:1006-8228(2012)03-33-02

Serial communication based on Matlab and AVR

Yi Lei, Nie Huanhuan, Liu Renping

(North China University of Technology, Beijing, 100144, China)

Abstract: The authors present in this paper an approach for serial communication based on Matlab and AVR through PC and explain how to achieve the serial communication based on the component library of Matlab and act respectively according to the data which the MCU collects.

Key words: serial communication; serial class object; MCU of AVR; serial communication of Matlab

0 引言

Matlab是MathWorks公司開發的一種科學計算軟件。Matlab運行穩定、可靠、使用方便,是廣大科研人員進行科學研究的得力助手。Matlab不僅具有強大的科學計算功能,還具有滿足一般要求的數據采集以及界面設計開發等功能[1]。

串行通信是指使用一條數據線,將數據一位一位地依次傳輸,每一位數據占據一個固定的時間長度的通信方法。它只需要少數幾條線就可以在系統間交換信息,特別適用于計算機與計算機、計算機與外設之間的遠距離通信。

目前常用的串行通訊協議有RS-232、RS-422和RS-485等。

從Matlab 6.0版本開始,軟件中增加了設備控制箱(Instrument Control Toolbox)功能,提供了對RS-232/RS-485通信標準的串口通信的正式支持。利用該工具箱的serial類及fopen、fread等函數,能可靠地進行實時串行通信。根據Matlab的設備控制箱功能,Matlab產生的數據,例如圖像數據、音頻數據等,通過串口輸出作為傳輸的數據源,并可通過控制電路由AVR單片機實現。這種方法將Matlab的數據運算與單片機的數據處理有機結合起來,具有一定的實際意義[2]。

1 Matlab的串口通信原理

對于系統的串口,在Matlab中以serial類的形式提供了支持。當用指令建立一個串口對象(句柄)后,對串口的硬件操作可以以文件操作的軟件方式來完成,該方法比較簡單。

Matlab提供了對串口進行打開、關閉、以及串口參數設置等操作的一系列函數。利用這些函數可以選擇串口號、設置串口通信參數,例如波特率、數據位、停止位、校驗位等。

Matlab對串口的控制主要通過以下幾個步驟[3]。

⑴ 為應用程序創建串口對象,需要用到的函數為

s=serial(‘COM1):創建COM1串口對象,并以s標識。其中串口的屬性使用系統默認值。

⑵ 創建串口COM1后,打開串口需要用到的函數為

fopen(s):打開COM1串口。

⑶ 設置串口的屬性參數,需要用到的函數為

props=set(s,‘PropertyName,PropertyValue,…):設置正確的串口通信參數。

通過定義串口對象的屬性, 就能定義串口的通信模式,也可以了解串口的狀態。串口對象幾個比較重要的屬性如下。

BaudRate:定義傳輸波特率,常用的波特率有1200、2400、4800、9600、19200、115200等,缺省值為9600;

DataBits:定義數據幀的比特位數;

Parity:定義校驗方式;

StopBits:定義數據停止位。

⑷ 從串口讀數據或者向串口寫數據,也就是接收或者發送數據。需要用到的函數和參數有以下[4]。

fread(s):以二進制通信方式讀取串口數據。

fwrite(s):以二進制通信方式向串口寫數據。

fprintf(s, ‘ ID):以文本通信方式向串口輸出字符串‘ID,寫操作以同步方式進行。

id=fscanf(s):以文本通信方式向串口讀入字符串‘ID,并且保存在變量id中。

⑸ 關閉串口并且釋放串口對象占用的存儲空間。需要用到的函數有以下。

fclose(s):關閉串口。

delete(s):釋放串口對象占用的內存空間。

clear s:釋放串口對象在Matlab工作區中占用的存儲空間。

用Matlab實現對串口的讀寫操作,單片機可以通過串口接收Matlab傳來的數據,并且對數據作出處理。

2 AVR對串口數據進行處理

以下實驗是通過Matlab對串口寫數據后,單片機對傳到串口的數據進行處理的過程。整個系統的結構圖如圖1所示。

[PC機

模塊][MAX232A

電平轉換][AVR

單片機

模塊]

圖1系統結構圖

2.1 基于Matlab的上位機通訊

用Matlab以查詢方式的進行異步串行通信的主要代碼為:

s=serial(‘COM1);%創建COM1串口對象,并以s標示

s.baudrate=9600;%波特率為9600

s.stopbits=1;%設置停止位

fopen(s);%打開COM1串口

fwrite ( s , ‘16, ‘uchar);%向s寫十進制數16

fclose (s);%斷開串口COM1與s的相連

delete (s);%從內存中刪除串口對象s

clear s;%從Matlab工作區中清除串行接口對象s

2.2 基于AVR單片機的下位機通訊

單片機系統處于下位機狀態,等待Matlab 傳來的命令。當串口接收到數據后,按照協議對數據進行分析(這里使用的是AVR單片機中的mega8系列)。對串行數據進行處理的軟件處理流程圖如圖2所示[5]。

本設計來源于機器人語音識別項目。利用PC機識別語音信號后,讓機器人將做出相應的動作。

實現過程為:Matlab做出語音識別后輸出一個值,單片機根據這個值所對應的數據,來寫端口值進而驅動電機,電機的轉動帶動機器人四肢的轉動,從而實現目標。

[開始][串行口初始化

設置相關寄存器] [接受緩存為空?][接收PC機

發送信號] [是否為握手信號

0XFFH?][開始通信][單片機處理過程][結束][Y][N] [N][Y]

圖2AVR單片機下位機流程圖

3 結束語

本文所采用的串行通信方式為查詢方式,因此系統的實時性不是很好。在實際運用中,可以選擇Matlab所提供的instrcallback(s)回調函數以實現良好的實時性。另外本文所述單片機驅動的是電機,有興趣的讀者可以驅動其他外設。

參考文獻:

[1] 王戰軍,沈明.基于Matlab GUI的串口通信編程實現[J].現代電子技術,2010.9:39~44

[2] 李俊華.基于Matlab的紅外串行通信研究[J].現代電子技術,2011.3:59~65

[3] 張立材.基于Matlab環境的串行數據通信[J].微計算機信息,2004.3:100~101

[4] 孫希延,紀元法,施滸立.基于MATLAB的串口GPS數據通信處理系統設計[J].儀器儀表用戶,2006.6:64~65

[5] 向先波,徐國華,張琴.Matlab環境下PC機與單片機的串行通信及數據處理[J].單片機與嵌入式系統應用,2004.12:27~31

主站蜘蛛池模板: 成人精品视频一区二区在线 | 精品中文字幕一区在线| 亚洲一级色| 精品乱码久久久久久久| 精品亚洲国产成人AV| 超清人妻系列无码专区| 一级黄色网站在线免费看| 国产欧美综合在线观看第七页| 免费观看无遮挡www的小视频| 在线观看无码av免费不卡网站| 秋霞国产在线| 亚洲日本精品一区二区| 免费激情网站| 亚洲综合激情另类专区| 有专无码视频| 久久精品亚洲中文字幕乱码| 国产精品lululu在线观看| 免费不卡视频| 国产乱论视频| 91原创视频在线| 国产爽爽视频| 毛片免费观看视频| 国产在线拍偷自揄拍精品| 99久久国产综合精品女同| 这里只有精品在线播放| 高潮爽到爆的喷水女主播视频| 精品久久人人爽人人玩人人妻| 呦女精品网站| 久久久噜噜噜久久中文字幕色伊伊| 国产精品不卡片视频免费观看| 第一区免费在线观看| 中文成人无码国产亚洲| 国产精品大白天新婚身材| 国产精品视频系列专区| 欧美中日韩在线| 2021精品国产自在现线看| 国精品91人妻无码一区二区三区| 97成人在线观看| 一级黄色欧美| 亚洲国产亚洲综合在线尤物| 日韩欧美中文| 影音先锋丝袜制服| 亚洲国产高清精品线久久| 91网址在线播放| 国产精品所毛片视频| 国产国产人成免费视频77777| 国产精品尤物铁牛tv | 精品一區二區久久久久久久網站| 国产无码网站在线观看| 色九九视频| 亚洲国产成人在线| 亚洲 成人国产| 爱做久久久久久| 日本妇乱子伦视频| 亚洲国产午夜精华无码福利| 亚洲精品视频免费| 久久免费视频6| 精品成人一区二区三区电影| 制服无码网站| 国产一二三区在线| 欧美亚洲一二三区| 91热爆在线| 青青青国产视频| 亚洲成a人在线播放www| 99久久国产综合精品女同| 精品人妻AV区| 亚洲欧洲日本在线| 一级片一区| 亚洲欧美另类中文字幕| 亚洲高清中文字幕在线看不卡| 久久无码免费束人妻| 全部免费特黄特色大片视频| 欧美高清三区| 日韩一区二区在线电影| 亚洲伊人电影| 尤物午夜福利视频| 久久a级片| 91伊人国产| 一区二区自拍| 亚洲欧洲一区二区三区| 在线日韩一区二区| 国产尤物在线播放|