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

基于LabVIEW的單片機脈沖發生器

2008-04-12 00:00:00
現代電子技術 2008年3期

摘 要:為了產生不同頻率,不同脈寬的刺激信號,利用RS 232 串行通信接口將計算機與單片機相連,計算機通過LabVIEW軟件平臺,對單片機發送指令參數,單片機利用接收到的指令參數產生計算機所指定的脈沖。介紹了該系統中上下位機的具體程序流程,并且完成了對整個系統的檢測。通過實驗證明該系統可以精確地產生所要求的脈沖波形。

關鍵詞:LabVIEW;MCS—51;VISA;串口通信

中圖分類號:TP23 文獻標識碼:B

文章編號:1004373X(2008)0309703

Single Chip Pulse Generator Based on LabVIEW

CHEN Hong,CHEN Xin

(College of Physics and Information Engineering,Fuzhou University,Fuzhou,350002,China)

Abstract:With the RS 232 serial communication interface,the computer connects to the single chip.It sends the directive parameters to the single chip through LabVIEW software platform,for generating the signal with different frequency and different pulse width.The single chip generates the pulse defined by the directive parameters from computer.It introduces the both specific processes and achieves the detection of whole system.Through the experiment,the system is tested that it can generat pulse accurately all we demanded.

Keywords:LabVIEW;MCS—51;VISA;serial communication

1 引 言

由于各種人群的皮膚阻抗的動態范圍不一樣,甚至同一個人在不同的時間、不同的環境下皮膚阻抗的動態范圍也不一樣。因此,在皮膚阻抗檢測系統中,刺激器需要根據不同的人群以及不同的環境,產生不同頻率、不同脈寬的刺激信號,才能保證檢測系統可以測量到人體皮膚的真實阻抗。

MCS—51單片機系統有3個定時器可以產生方波,而且方波的脈沖頻率及寬度可以由軟件設定,這種產生脈沖的方式具有很大的靈活性。上位機軟件LabVIEW同下位機通信時,將下位機所要產生的脈沖的參數通過串口傳給下位機,以便實現利用LabVIEW控制單片機產生所需脈沖的目的。

2 下位機系統的設計

2.1 硬件部分

MCS—51單片機內部有一個功能很強的全雙工串行口,該串行口有4種工作方式。片內的定時器/計數器可以產生波特率,大小可用軟件設置。有2個物理上獨立的接收、發送緩沖器SBUF,接收、發送均可觸發中斷系統,使用十分方便。對外也有兩條獨立的收、發信號線RXD(P3.0)和TXD(P3.1) [1]。

本文采用RS 232串行接口標準,在電氣特性上,RS 232采用負邏輯,要求高低兩信號間有較大的幅度,標準為:邏輯“1”在-5~-15 V之間,邏輯“0”在+5~+15 V之間。

2.2 軟件部分

MCS—51的定時器0進行兩次計數。設P1.0為脈沖發生端,當定時器0的第一次計數結束后,將P1.0取反,賦新的初值,再進行第二次計數。當第二次計數結束后,再一次將P1.0取反,又賦原來的初值,進行新一輪的計數,如此反復即可產生方波。這樣通過兩次計數值的不同就可以實現產生不同脈寬及頻率的方波了。

圖1,圖2和圖3給出了單片機程序的詳細流程圖。其中定時器1工作在方式2,這是一種自動重裝方式,禁止中斷,用于產生波特率(該波特率設置為9 600)。串口工作在方式1,發送或接受一幀信息為10位,1位起始位(0),8位數據位和1位停止位(1),無奇偶校驗位。程序還設定串口中斷優先級高于定時器0的中斷優先級。

在通信前,上下位機一般會約定一個協議,例如在發送的數據前加一個標識段,一般為一個字節。當該字節傳輸正確后,下位機才可以認為上位機準備發送數據段。這樣可以避免串口偶爾產生的誤發信號。

程序設定4個字節為一個數據段,是因為上位機一次性要發完包括高低電平在內的兩次定時器的初始值,而每一個初始值都有兩個字節。因此下位機判斷一次完整的數據段是否發送完畢,就是判斷其是否收到了4個字節的數據。

圖1 主程序流程圖

圖2 定時器中斷程序流程圖

圖3 串口中斷程序流程圖

3 上位機系統的設計

LabVIEW語言是美國國家儀器(NI)公司開發的一種基于圖形化語言(G語言)的編程語言,利用該語言編寫的模塊化程序,具有良好的界面,簡單、直觀,且易于理解、調試和維護。做成的虛擬儀表可以當作許多儀器設備來使用,其功能完全由用戶編程定義。另外,LabVIEW內還包含豐富的數據采集、數據信號分析以及控制等子程序,特別適用于數據采集、通信處理系統。

LabVIEW 提供了很多現成的可供調用的函數庫,從底層的GPIB,VXI,PXI,串口數據采集板的控制子程序到大量的儀器驅動程序;從基本的功能函數到高級分析庫,幾乎涵蓋了儀器設計中需要的所有函數。同時,LabVIEW 還支持用于網絡通訊的TCP/IP 協議、動態數據交換(DDE)和網絡化多媒體對象技術(ActiveX)等應用軟件標準[2]。

3.1 VISA

LabVIEW提供了功能強大的VISA庫。VISA(Virtual Instrument Software Architecture,虛擬儀器軟件規范)是用于儀器編程的標準I/O函數庫及其相關規范的總稱。VISA庫駐留于計算機系統中,完成計算機與儀器之間的連接,用以實現對儀器的程序控制,其實質是用于虛擬儀器系統的標準的API(Application Programmer Interface,應用程序接口)。正因為如此,VISA可以連接不同標準的I/O設備[3]。

VISA本身并不具備編程能力,惟他通過調用底層的驅動程序來實現對儀器的編程。VISA的I/O軟件庫的源程序是惟一的,其與操作系統及編程語言無關,只是提供了標準形式的API文件作為系統的輸出[4]。

3.2 LabVIEW中利用VISA實現串口通信

在LabVIEW中使用串口的基本流程為:先調用VISA Configure Serial Port來完成串口參數的初始化設置,包括了串口的資源分配,波特率的設定,數據位、停止位、校驗位和流控制等。

當某一個串口初始化成功后,就可以使用該串口進行數據的收發。使用VISA Write進行數據的發送,使用VISA Read進行數據的接收。在接收數據前,有時需要VISA Bytes at Serial Port查詢當前串口接收緩沖區中的數據字節數,如果VISA Read要讀取的字節數大于緩沖區中的數據字節數,VISA Read操作將一直等待,直至緩沖區中的數據字節數達到要求或是等待時間滿足VISA Configure Serial Port所設定的Timeout。

在對數據的連續性要求不高的時候,VISA Read也支持分批讀取接收緩沖區里的數據字節或者只是讀取其中的一部分字節。

圖4 VISA串口控制與收發數據的程序框圖

在某些特殊的情況下,可以利用VISA SET I/O Buffer Size設置串口接受/發送緩沖區的大小,使用VISA Flash I/O Buffer清空接收與發送緩沖區。

在串口使用結束后,使用VISA Close結束與VISA resource name所指定串口間的會話。

該LabVIEW程序框圖中調用了一個叫做change的子VI程序,該子VI程序的功能是將高低電平的脈沖寬度值,轉換成定時器的初始值,并且拼湊成一個4個字節的16進制數,通過VISA Write模塊送入下位機。該子VI的程序框圖如圖5所示。

圖5 發送前數值轉換的程序框圖

在接收到數據后,單片機有一條反饋的指令,他將其緩沖區內的值再次送回上位機,LabVIEW對該值進行顯示,并可以和原來實際輸出的16進制數進行比較。用戶可以很方便地知道,是否在上下位機通信中出現誤碼。

圖6左側的倒三角表示從圖4(a)的VISA Read中接收到的值,他與LabVIEW上一次顯示的值拼裝成一個完整的字符串,成為新的顯示值,在字符串顯示區顯示出來。

圖6 下位機反饋值顯示的程序框圖

4 程序運行結果與驗證

程序的前面板界面如圖7所示。

圖7 上位機程序的前面板界面

圖8是另一個程序的前面板,該程序可以將采樣率設定為50 kHz的采集卡采集到的數據顯示在屏幕上。該屏幕顯示的是,上位機程序發送欲產生高低電平均為0.6 ms脈沖波的定時器初始值給下位機后,下位機產生的脈沖序列。

上位機發送的16進制數為FDA8FDA8,下位機準確接收后,反饋的值也為FDA8FDA8。根據采樣率為50 kHz,即0.02 ms采樣一次,則在顯示波形圖中任選一次完整脈沖(如圖8所示)進行計算,可以得到該次的低電平的持續時間為0.66 ms,高電平的持續時間為0.68 ms。

這兩個數據的誤差可能是采集卡的采樣率誤差引起的,或是單片機的定時器中斷服務程序的執行周期產生的延時所造成的。

圖8 產生的脈沖顯示波形圖

另外,在上下位機的通信中,也可能會產生誤碼,導致產生的波形不符合要求。如果要一次性完成數據傳輸的任務,則應該在上下位機間增加可糾錯的編碼和譯碼電路,否則,可以選擇再次發送數據,當返回值與發送值一致時,才可認為發送成功,產生的波形基本可以符合要求。

5 結 語

本文用RS 232串行通信接口將計算機與單片機相連,組成一個可控脈沖發生器用于皮膚阻抗檢測。上位機用LabVIEW編程,產生的界面友好,操作方便。這種可控脈沖發生器編程靈活,不僅可以產生方波,還可以產生三角波,正弦波等,基本可以滿足實驗的要求。

參考文獻

[1]張俊謨.單片機中級教程原理與應用[M].北京:北京航空航天大學出版社,2000.

[2]謝鶯燕.LabVIEW在醫學信號采集與處理中的應用[J].中國科技信息,2006(13):183—184.

[3]張騫慧,黃鴻.基于LabVIEW平臺的阻抗測試系統設計與實現[J].現代科學儀器,2006(4):59—61.

[4]雷勇.虛擬儀器設計與實踐[M].北京:電子工業出版社,2005.

作者簡介 陳 宏 男,福建莆田人,碩士研究生。主要研究方向為通信與信息系統。

陳 新 男,福建福州人,教授,碩士生導師。主要研究方向為生物醫學,圖像處理與網絡通信。

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 国精品91人妻无码一区二区三区| 免费A∨中文乱码专区| 亚洲va精品中文字幕| 国产在线高清一级毛片| 国产在线自乱拍播放| 午夜福利视频一区| 国产国产人成免费视频77777| аⅴ资源中文在线天堂| 亚洲欧美人成电影在线观看| 久久精品aⅴ无码中文字幕| 亚国产欧美在线人成| 久久精品66| 欧美三级视频在线播放| 国产精品第一区在线观看| 99热这里只有精品国产99| 亚洲欧美日韩综合二区三区| 欧美成一级| 国产精品熟女亚洲AV麻豆| 国产女人水多毛片18| 狠狠做深爱婷婷久久一区| 青青操国产视频| 欧美激情网址| 中文字幕久久波多野结衣| 在线日本国产成人免费的| 国产美女叼嘿视频免费看| 欧美一级夜夜爽| 成人免费午夜视频| 2021精品国产自在现线看| 亚洲午夜福利在线| 91毛片网| 久久青草免费91观看| 99久久精品国产麻豆婷婷| 五月婷婷激情四射| 精品国产免费人成在线观看| 9999在线视频| 欧美一级黄片一区2区| 性69交片免费看| 99视频只有精品| 97狠狠操| 六月婷婷精品视频在线观看 | 国产成人AV男人的天堂| 成人亚洲天堂| 又黄又湿又爽的视频| 成人噜噜噜视频在线观看| 国产成人亚洲无吗淙合青草| 免费不卡视频| 人妻无码一区二区视频| 成年av福利永久免费观看| 亚洲天堂视频在线播放| a级毛片毛片免费观看久潮| 激情综合五月网| 九九精品在线观看| 欧美日韩高清在线| 91亚洲免费视频| 1769国产精品免费视频| 精品国产免费观看| 狠狠ⅴ日韩v欧美v天堂| 波多野结衣视频网站| 激情爆乳一区二区| 日韩精品亚洲一区中文字幕| 亚洲aaa视频| 99久久国产综合精品女同| 亚洲欧美精品一中文字幕| 国产精品久久精品| 日本日韩欧美| 国产精品原创不卡在线| 一本大道在线一本久道| 亚洲日韩精品综合在线一区二区| 国产成人精品一区二区三区| 国产白浆在线| 激情六月丁香婷婷四房播| 91 九色视频丝袜| 国产综合精品日本亚洲777| 亚洲精品人成网线在线 | 重口调教一区二区视频| 欧美激情第一欧美在线| 二级毛片免费观看全程| 91www在线观看| aⅴ免费在线观看| 亚洲国产系列| 国产男女XX00免费观看| 日本免费福利视频|