杜海龍, 王 琦, 李 娟
(吉林大學 通信工程學院, 吉林 長春 130012)
電子信息專業綜合實驗是電子類和信息類各專業的專業實踐環節一門必修課,是完成本科教學的重要環節,一般安排在本科四年級的第一學期開學完成。綜合實驗旨在提高學生動手能力,豐富學生的創新實踐知識的實驗教學。因此,綜合實驗應體現綜合性、階段性、創造性和開放性[1]。學生通過電子信息專業綜合實驗,加強本科專業課程之間的聯系,提高學生的綜合實驗能力。通過實驗,使學生能夠由淺入深、更加系統地了解和掌握相關的理論和實踐課程,并能夠把它們綜合起來加以運用,為學生的畢業設計環節和將來走上工作崗位奠定的基礎。
本文設計采用了具有在線調試功能的C8051F320單片機[2],它具有豐富的資源,包括:
(1) 高速8051微控制器內核。流水線指令結構,70%的指令的執行時間為1個或2個系統時鐘周期,速度可達25 MIPS,以及可擴展的中斷系統。
(2) 模擬外設。10位模擬數字轉換單元,17個或13個外部單端或差分輸入,參考電壓VREF可在內部VREF(2.44V)、外部引腳或VDD電源引腳選擇,可通過外部轉換啟動輸入,同時內置溫度傳感器。
(3) 在線調試。片內調試電路提供全速、非侵入式的在系統調試,支持斷點、單步、觀察/修改存儲器和寄存器,比使用仿真芯片、目標仿真頭和仿真插座的仿真系統有更優越的性能。
(4) 數字外設。增強型UART和SMBus串口,硬件增強型SPI。
選擇的RC網絡為電阻電容串聯[3],電阻選擇1 MΩ,電容選擇1 μF,其充放電時間常數為1 s。
3.3 V電平在阻容網絡上的最大充放電電流I=V/R=3.3 V/106Ω=3.3 μA。
選用單片機一個IO口作為控制信號,控制電容的充放電過程以及充放電驅動信號的形式,如圖1所示。單個IO口可以提供10 mA的電流,其電流值遠遠大于阻容網絡的充放電極限電流。
計算機負責發送指令,指令包括驅動信號形式、采樣時間間隔、采樣點數等。A/D轉換負責把電容兩端的電壓轉換成數字信號,然后通過串行口發送給計算機。

圖1 綜合實驗平臺原理框圖
單片機電路將全部輸入輸出接口通過一個51 Ω電阻后引出,該電阻可以防止外部接口短路造成的芯片損壞。引出全部引腳,方便學生在其他實驗中擴展。單片機核心電路見圖2。

圖2 單片機核心電路
采用單片機輸出狀態的P1.0引腳作為控制信號,輸入狀態的ADIN0引腳作為模數轉換的輸入引腳[4-6],阻容網絡電路見圖3。

圖3 阻容網絡電路
單片機輸出的電壓為CMOS邏輯電平,要轉換成計算機可以直接接收的標準RS232電平,需要進行電平轉換。本文選自了集成的RS232驅動器芯片MAX232[7],其包含雙路電荷泵DC-DC電壓轉換器、RS232驅動器、RS232接收器,以及接收器與發送器使能控制輸入。該芯片的連接電路如圖4所示。

圖4 RS232串行口電路
在KEIL開發環境下,利用C語言對單片機進行編程,流程見圖5。單片機等待上位機傳送指令,指令格式為Axxxxxyyy,其中xxxxx表示5位數采樣間隔,單位為μs,最小間隔為90 μs。yyy表示采樣點數。

圖5 軟件流程
為了保證數據快速、準確傳輸,選擇RS232速度為115.2 kbit/s,該速度需要上位機與下位機保持一致[8-11]。
VB在是一種比較適合教學和小規模產品開發的語言,在開發可視化環境下的監控系統時具有其獨特的優勢。VB提供了串行通信控件,學生可以在盡可能短的時間內實現串行口通信,并可以對數據進行分析等簡單的編程處理[12-14]。
本文在VB6.0的環境下進行編程,運用串行口通信控件進行收發數據,并用命令進行畫圖。
(1) 在實驗平臺關機的條件下,將實驗箱的串口、USB接口線與計算機連接。在A/D轉換輸入接口上接入電阻電容網絡。
(2) 接通電源,運行VB上位機程序。
(3) 在發送區輸入數據A02000500,然后點擊發送字符串。
(4) 點擊讀取字符串,將會在接收區顯示已經讀取的數據。
(5) 點擊畫圖,根據接收到的數據,轉換成十進制,然后畫圖,結果如圖6所示。
(6) 為了驗證數據準確性,在發送區輸入數據A05000200,然后重復(4)和(5)的過程。
(7) 點擊結束按鈕退出程序。

圖6 實驗數據
根據電路理論,阻容網絡充放電公式為
(1)
其中,V為理論電壓值,Vref為參考電壓值,T為時間常數。
由式(1)可得
(2)
理論曲線如圖7所示。

圖7 阻容網絡充放電理論曲線
根據選定的電阻電容參數,時間常數T為1 s;兩組數據中,總體時間長度均為1 s,即為1個充電時間常數。根據理論數據分析,在第一個時間常數的位置,曲線的η值為η=0.632。分別計算兩組數據中的絕對誤差[15]如下:
末點采樣電壓值:
其中,D表示采樣值電壓的量化值,D0表示參考電壓時對應的量化值。
充電比例ηT為
ηT=(V/VCC)×100%=
(2.09 V/3.3 V)×100%=63.3%
其中,VCC表示充電電源電壓值。
相對誤差e為
e=η-ηT=63.2%-63.3%=-0.1%
同樣方式計算實驗數據B,誤差為-0.4%。
重復的數據誤差的絕對值均低于0.5%,多次反復測量重復性較好,適合學生做重復性實驗。
本文針對信息工程專業學生設計的電子信息專業綜合實驗平臺,涉及到本科的多門基礎及專業課程。學生通過該實驗平臺,可以深刻領會到計算機通信的實際應用、數據采集系統的搭建及如何對傳感器采集到的數據進行分析等;學生可以對所學習的知識點直觀地理解,增強學生的感性認識,培養學生獨立思考、綜合運用所學知識解決實際問題的能力,實踐教學和學生培養質量得到了提高。
[1] 古天祥,張紅莉,古軍,等.電子信息技術綜合實驗平臺的建設[J].實驗技術與管理,2001,18(3):5-12.
[2] Silicon Laboratories Inc.C8051F320/1混合信號ISP FLASH微控制器數據手冊[EB/OL].(2009-08)[2017-12-21]. https://www.silabs.com/documents/public/data-sheets/C8051F32x.pdf.
[3] 童詩白,華成英.模擬電子技術基礎[M].3版.北京:高等教育出版社,2001.
[4] 龔運新,羅惠敏,彭建軍.單片機接口C語言開發技術[M].北京:清華大學出版社,2009.
[5] 張毅剛,彭喜元,姜守達, 等.新編MCS-51單片機應用設計[M].哈爾濱: 哈爾濱工業大學出版社,2003.
[6] 杜海龍,馬海濤,鄭喜鳳,等. 基于單片機的氘燈電源系統[J].微計算機信息,2009,25(3):131-153.
[7] MAX220-MAX249+5V供電、多通道RS-232驅動器/接收器[EB/OL].(2010-07)[2017-12-21].https://datasheets.maximintegrated.com/cn/ds/MAX220-MAX249_cn.pdf.
[8] 朱艷萍,鄒應全,廖建輝. Keil C環境下串口實驗的模擬調試[J]. 實驗技術與管理,2012,29(3):112-126.
[9] 楊潮.C語言程序設計及應用實例[M].北京:電子工業出版社,1995.
[10] 程曉旭,耿魯靜,張海,等.C語言算法速查手冊[M].北京:人民郵電出版社,2009.
[11] 譚浩強.C程序設計[M]. 2版.北京:清華大學出版社,1999.
[12] 范逸之,陳立元.Visual Basic與RS-232串行通信控制(最新版)[M].北京:清華大學出版社,2002.
[13] 柏逢明,衛昱含.VB基礎與RS-232通信技術[M].北京:機械工業出版社,2014.
[14] 張輝,李榮利,王和平.Visual Basic串口通信及編程實例[M].北京:化學工業出版社,2011.
[15] 呂偉鋒. RC和RL微分實驗電路誤差的時間分析法[J]. 實驗技術與管理,2010,27(12):48-50.