• <del id="qqie6"><sup id="qqie6"></sup></del>
  • <tfoot id="qqie6"></tfoot>
  • <ul id="qqie6"></ul>
  • 產品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質分析|光譜儀|試驗機|試驗箱


    儀表網>技術中心>技術原理>正文

    歡迎聯系我

    有什么可以幫您? 在線咨詢

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

       2012年03月26日 14:28  
      1、引言
      
      由于各種人群的皮膚阻抗的動態范圍不一樣,甚至同個人在不同的時間、不同的環境下皮膚阻抗的動態范圍也不一樣。因此,在皮膚阻抗檢測系統中,刺激器需要根據不同的人群以及不同的環境,產生不同頻率、不同脈寬的刺激信號,才能保證檢測系統可以測量到人體皮膚的真實阻抗。
      
      MCS-51單片機系統有3個定時器可以產生方波,而且方波的脈沖頻率及寬度可以由軟件設定,這種產生沖的方式具有很大的靈活性。上位機軟件LabVIEW同下位機通信時,將下位機所要產生的脈沖的參數通過串口傳給下位機,以便實現利用LabVIEW控制單片機產生所需脈沖的目的。
      
      2、下位機系統的設計
      
      2.1硬件部分
      
      MCS-51單片機內部有一個功能很強的全雙工串行口,該串行口有4種工作方式。片內的定時器/計數器可以產生波特率,大小可用軟件設置。有2個物理上獨立的接收、發送緩沖器SBUF,接收、發送均可觸發中斷系統,使用十分方便。對外也有兩條獨立的收、發信號線RXD(P3.0)和TXD(P3.1)。
      
      本文采用RS232串行接口標準,在電氣特性上,RS232采用負邏輯,要求高低兩信號間有較大的幅度,標準為:邏輯"1"在-5~-15V之間,邏輯"0"在+5~+15V之間。
      
      2.2軟件部分
      
      MCS-51的定時器0進行兩次計數。設P1.0為脈沖發生端,當定時器0的*次計數結束后,將P1.0取反,賦新的初值,再進行第二次計數。當第二次計數結束后,再一次將P1.0取反,又賦原來的初值,進行新一輪的計數,如此反復即可產生方波。這樣通過兩次計數值的不同就可以實現產生不同脈寬及頻率的方波了。

      
      圖1,圖2和圖3給出了單片機程序的詳細流程圖。其中定時器1工作在方式2,這是一種自動重裝方式,禁止中斷,用于產生波特率(該波特率設置為9600)。串口工作在方式1,發送或接受一幀信息為10位,1位起始位(0),8位數據位和1位停止位(1),無奇偶校驗位。程序還設定串口中斷優先級高于定時器0的中斷優先級。
      
      在通信前,上下位機一般會約定一個協議,例如在發送的數據前加一個標識段,一般為一個字節。當該字節傳輸正確后,下位機才可以認為上位機準備發送數據段。這樣可以避免串口偶爾產生的誤發信號。
      
      程序設定4個字節為一個數據段,是因為上位機一次性要發完包括高低電平在內的兩次定時器的初始值,而每一個初始值都有兩個字節。因此下位機判斷一次完整的數據段是否發送完畢,就是判斷其是否收到了4個字節的數據。
      
      3、上位機系統的設計
      
      LabVIEW語言是美國國家儀器(NI)公司開發的一種基于圖形化語言(G語言)的編程語言,利用該語言編寫的模塊化程序,具有良好的界面,簡單、直觀,且易于理解、調試和維護。做成的虛擬儀表可以當作許多儀器設備來使用,其功能*由用戶編程定義。另外,LabVIEW內還包含豐富的數據采集、數據信號分析以及控制等子程序,特別適用于數據采集、通信處理系統。
      
      LabVIEW提供了很多現成的可供調用的函數庫,從底層的GPIB,VXI,PXI,串口數據采集板的控制子程序到大量的儀器驅動程序;從基本的功能函數到分析庫,幾乎涵蓋了儀器設計中需要的所有函數。同時,LabVIEW還支持用于網絡通訊的TCP/IP協議、動態數據交換(DDE)和網絡化多媒體對象技術(ActiveX)等應用軟件標準。
      
      3.1VISALabVIEW提供了功能強大的VISA庫
      
      VISA(VirtualInSTrumentSoftwareArchitecture,虛擬儀器軟件規范)是用于儀器編程的標準I/O函數庫及其相關規范的總稱。VISA庫駐留于計算機系統中,完成計算機與儀器之間的連接,用以實現對儀器的程序控制,其實質是用于虛擬儀器系統的標準的API(ApplicatiONProgrammerInter-face,應用程序接口)。正因為如此,VISA可以連接不同標準的I/O設備。
      
      VISA本身并不具備編程能力,惟他通過調用底層的驅動程序來實現對儀器的編程。VISA的I/O軟件庫的源程序是惟一的,其與操作系統及編程語言無關,只是提供了標準形式的API文件作為系統的輸出。
      
      3.2LabVIEW中利用VISA實現串口通信
      
      在LabVIEW中使用串口的基本流程為:先調用VISAConfigureSerialPort來完成串口參數的初始化設置,包括了串口的資源分配,波特率的設定,數據位、停止位、校驗位和流控制等。
      
      當某一個串口初始化成功后,就可以使用該串口進行數據的收發。使用VISAWrite進行數據的發送,使用VISARead進行數據的接收。在接收數據前,有時需要VISABytesatSerialPort查詢當前串口接收緩沖區中的數據字節數,如果VISARead要讀取的字節數大于緩沖區中的數據字節數,VISARead操作將一直等待,直至緩沖區中的數據字節數達到要求或是等待時間滿足VISAConfigureSerialPort所設定的Timeout。在對數據的連續性要求不高的時候,VISARead也支持分批讀取接收緩沖區里的數據字節或者只是讀取其中的一部分字節。
      
      在某些特殊的情況下,可以利用VISASETI/OBufferSize設置串口接受/發送緩沖區的大小,使用VISAFlashI/OBuffer清空接收與發送緩沖區。在串口使用結束后,使用VISAClose結束與VISAresourcename所串口間的會話。
      
      該LabVIEW程序框圖中調用了一個叫做change的子VI程序,該子VI程序的功能是將高低電平的脈沖寬度值,轉換成定時器的初始值,并且拼湊成一個4個字節的16進制數,通過VISAWrite模塊送入下位機。該子VI的程序框圖如圖5所示。
      
      在接收到數據后,單片機有一條反饋的指令,他將其緩沖區內的值再次送回上位機,LabVIEW對該值進行顯示,并可以和原來實際輸出的16進制數進行比較。用戶可以很方便地知道,是否在上下位機通信中出現誤碼。
      
      圖6左側的倒三角表示從圖4(a)的VISARead中接收到的值,他與LabVIEW上一次顯示的值拼裝成一個完整的字符串,成為新的顯示值,在字符串顯示區顯示出來。
      
      4、程序運行結果與驗證
      
      程序的前面板界面如圖7所示。
      
      圖8是另一個程序的前面板,該程序可以將采樣率設定為50kHz的采集卡采集到的數據顯示在屏幕上。該屏幕顯示的是,上位機程序發送欲產生高低電平均為0.6ms脈沖波的定時器初始值給下位機后,下位機產生的脈沖序列。
      
      上位機發送的16進制數為FDA8FDA8,下位機準確接收后,反饋的值也為FDA8FDA8。
      
      根據采樣率為50kHz,即0.02ms采樣一次,則在顯示波形圖中任選一次完整脈沖(如圖8所示)進行計算,可以得到該次的低電平的持續時間為0.66ms,高電平的持續時間為0.68ms。
      
      這兩個數據的誤差可能是采集卡的采樣率誤差引起的,或是單片機的定時器中斷服務程序的執行周期產生的延時所造成的。
      
      另外,在上下位機的通信中,也可能會產生誤碼,導致產生的波形不符合要求。如果要一次性完成數據傳輸的任務,則應該在上下位機間增加可糾錯的編碼和譯碼電路,否則,可以選擇再次發送數據,當返回值與發送值一致時,才可認為發送成功,產生的波形基本可以符合要求。
      
      5、結語
      
      本文用RS232串行通信接口將計算機與單片機相連,組成一個可控脈沖發生器用于皮膚阻抗檢測。上位機用LabVIEW編程,產生的界面友好,操作方便。這種可控脈沖發生器編程靈活,不僅可以產生方波,還可以產生三角波,正弦波等,基本可以滿足實驗的要求。

    免責聲明

    • 凡本網注明“來源:儀表網”的所有作品,均為浙江興旺寶明通網絡有限公司-儀表網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:儀表網”。違反上述聲明者,本網將追究其相關法律責任。
    • 本網轉載并注明自其它來源(非儀表網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
    • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
    聯系我們

    客服熱線: 15024464426

    加盟熱線: 15024464426

    媒體合作: 0571-87759945

    投訴熱線: 0571-87759942

    關注我們
    • 下載儀表站APP

    • Ybzhan手機版

    • Ybzhan公眾號

    • Ybzhan小程序

    企業未開通此功能
    詳詢客服 : 0571-87759942
    主站蜘蛛池模板: 亚洲综合久久成人69| 亚洲av成人一区二区三区| 国产成人精品综合久久久久| 国产成人精品无码免费看| 国产成人 亚洲欧洲| 久久久久久成人毛片免费看| 精品无码成人片一区二区98| 国产成人麻豆精品午夜福利在线| 四虎成人精品在永久在线观看| 久久久久99精品成人片试看 | 国产成人精品无码免费看| 四虎永久成人免费| 成人免费a级毛片无码网站入口| 四虎www成人影院| 成人午夜精品久久久久久久小说| 国产成人免费片在线观看| 桃花阁成人网在线观看| 亚洲精品成人av在线| 成人性生交大片免费看| 中文字幕成人免费高清在线视频| 国产成人无码A区在线观看导航| 成人精品一区二区电影| 久久成人国产精品| 国产69久久精品成人看| 国产成人麻豆tv在线观看| 日本在线观看成人小视频| 亚洲人成人网站在线观看| 四虎影视成人永久在线观看| 国产成人精选视频69堂| 成人午夜福利电影天堂| 无遮挡韩国成人羞羞漫画网站| 亚洲AV成人片无码网站| 亚洲最大成人网色香蕉| 国产成人h片视频在线观看| 在线免费成人网| 国产成人综合久久久久久| 成人欧美一区二区三区在线观看| 成人超污免费网站在线看| 成人国产一区二区三区精品| 成人免费乱码大片a毛片| 成人免费在线播放|