郭東亮
(中山大學(xué)電子與通信工程學(xué)院,廣東廣州510006)
電路實(shí)驗(yàn)課程在高校信息類專業(yè)本科生的專業(yè)課程體系中十分重要,由于目前高校的招生規(guī)模持續(xù)增加,電路實(shí)驗(yàn)課程的實(shí)驗(yàn)教學(xué)資源趨于緊張,受制于實(shí)驗(yàn)室場(chǎng)地、設(shè)備資源和時(shí)間的局限,學(xué)生的人均實(shí)驗(yàn)時(shí)間較短,對(duì)于驗(yàn)證性的實(shí)驗(yàn),有部分學(xué)生在有限的實(shí)驗(yàn)課時(shí)內(nèi)無(wú)法完成規(guī)定的實(shí)驗(yàn)內(nèi)容,而對(duì)于難度較大的設(shè)計(jì)性實(shí)驗(yàn),學(xué)生往往難以在規(guī)定學(xué)時(shí)內(nèi)完成實(shí)驗(yàn).因此,如何增加電路實(shí)驗(yàn)資源的利用率是亟待解決的問(wèn)題.
傳統(tǒng)的電路實(shí)驗(yàn)設(shè)備是電路實(shí)驗(yàn)箱、實(shí)驗(yàn)電路板,這類實(shí)驗(yàn)設(shè)備處于未聯(lián)網(wǎng)的孤島狀態(tài),難以實(shí)現(xiàn)資源共享.利用網(wǎng)絡(luò)信息技術(shù)促進(jìn)優(yōu)質(zhì)教學(xué)資源的整合與共享、建立網(wǎng)絡(luò)化實(shí)驗(yàn)教學(xué)平臺(tái)是克服實(shí)驗(yàn)室場(chǎng)地、設(shè)備和時(shí)間局限、促進(jìn)實(shí)驗(yàn)室資源共享的重要途徑,也是目前高校實(shí)驗(yàn)教學(xué)技術(shù)發(fā)展的大趨勢(shì)[1-4],本文提出了一種基于網(wǎng)絡(luò)的遠(yuǎn)程電路實(shí)驗(yàn)教學(xué)系統(tǒng),用戶可通過(guò)網(wǎng)絡(luò)對(duì)實(shí)驗(yàn)電路板進(jìn)行實(shí)驗(yàn)數(shù)據(jù)采集和遠(yuǎn)程控制.
實(shí)驗(yàn)系統(tǒng)總體框圖如圖1所示.系統(tǒng)總體上分為控制模塊(控制電路板)、實(shí)驗(yàn)電路板兩個(gè)獨(dú)立部分,實(shí)驗(yàn)板與控制板之間經(jīng)柔性扁平電纜(FFC)連接.
1)實(shí)驗(yàn)電路板:是針對(duì)具體實(shí)驗(yàn)內(nèi)容開(kāi)發(fā)的電路板,控制板可以控制整套實(shí)驗(yàn)電路板,二者間的接口采用規(guī)范化設(shè)計(jì),不同實(shí)驗(yàn)電路板采用統(tǒng)一規(guī)格的接插件.
2)控制電路板:可分為微處理器模塊和被控模塊兩部分.①微處理器模塊:實(shí)現(xiàn)與計(jì)算機(jī)、局域網(wǎng)的通信以及對(duì)被控模塊輸出控制信號(hào)的功能.②被控模塊:包括衰減網(wǎng)絡(luò)、數(shù)控模擬開(kāi)關(guān)、數(shù)字電位器、數(shù)字可調(diào)電阻.為實(shí)現(xiàn)系統(tǒng)的成本效益最優(yōu),將其設(shè)置于控制電路板中,由信號(hào)及測(cè)試點(diǎn)連接器連接至實(shí)驗(yàn)電路板.
該系統(tǒng)的設(shè)計(jì)特點(diǎn)如下:
1)采用ARM微處理器為核心的控制模塊對(duì)實(shí)驗(yàn)電路板進(jìn)行數(shù)字控制.
2)由于數(shù)控的需要,實(shí)驗(yàn)電路板需要全新設(shè)計(jì),不再使用機(jī)械式開(kāi)關(guān),代之以數(shù)控模擬開(kāi)關(guān)或數(shù)字電位器、數(shù)字可調(diào)電阻.
3)可以實(shí)現(xiàn)輸入信號(hào)選擇或衰減、電路組態(tài)切換、測(cè)量點(diǎn)切換三個(gè)維度的控制.
圖1 實(shí)驗(yàn)系統(tǒng)框圖Fig.1 Diagram of experimental system
微控制器接入網(wǎng)絡(luò)有以下幾種方式:
1)通過(guò)專用來(lái)做網(wǎng)關(guān)的PC機(jī)與Internet連接
該方案需為每套實(shí)驗(yàn)系統(tǒng)配置一臺(tái)PC機(jī),成本高、耗電多、體積大.
2)低端單片機(jī)控制網(wǎng)卡芯片交換數(shù)據(jù)
該方案的優(yōu)勢(shì)是成本低,已有51 單片機(jī)與RTL8019AS 等網(wǎng)卡芯片接入以太網(wǎng)的成熟方案[5-6].該方案的劣勢(shì)是對(duì)系統(tǒng)資源消耗大,要占用大量?jī)?nèi)存,一般需擴(kuò)展RAM;此外,考慮TCP/IP協(xié)議的復(fù)雜性和單片機(jī)資源的有限性,必須對(duì)TCP/IP協(xié)議進(jìn)行裁剪,軟件工作量大.
3)使用集成以太網(wǎng)卡的高端微控制器
采用集成以太網(wǎng)模塊并固化TCP/IP 協(xié)議的高端微控制器可以簡(jiǎn)化系統(tǒng)硬件設(shè)計(jì),并提高系統(tǒng)可靠性.本設(shè)計(jì)采用第3方案.
微控制器承擔(dān)著聯(lián)系實(shí)驗(yàn)電路板與系統(tǒng)服務(wù)器的職責(zé),是遠(yuǎn)程平臺(tái)實(shí)驗(yàn)系統(tǒng)中的重要模塊.本設(shè)計(jì)選擇的STM32F107VCT6芯片是意法半導(dǎo)體(ST)公司推出的一款STM32互聯(lián)型產(chǎn)品,基于采用ARMv7-M 架構(gòu)的32位Cortex-M3處理器內(nèi)核[8].遠(yuǎn)程實(shí)驗(yàn)系統(tǒng)選用該芯片作為微控制器,在其上進(jìn)行微控制器軟件的開(kāi)發(fā).
STM32F107VCT6 芯片內(nèi)置了通信功能與控制功能所需模塊.其中USART 模塊,可以滿足RS232 接口的串口通信功能;以太網(wǎng)MAC(Media Access Control)模塊,通過(guò)RMII(Reduced Media Independent Interface)接口連接到DP83848 物理層芯片即可滿足網(wǎng)絡(luò)通信的需要;SPI(Serial Peripheral Interface)模塊,滿足對(duì)數(shù)字電位器的控制功能.STM32F107VCT6 芯片具有100 個(gè)引腳,其中包括了80 個(gè)GPIO(General Purpose Input/Output)端口,有足夠的端口數(shù)量保證與被控模塊的連接.
STM32F107VCT6芯片需要選用的端口包括串口通信端口2個(gè)、以太網(wǎng)通信端口10個(gè)、模擬開(kāi)關(guān)控制端口15個(gè)、數(shù)字電位器控制端口7個(gè),實(shí)驗(yàn)電路板識(shí)別端口3個(gè).具體選用端口如表1所示.
表1 STM32F107VCT6芯片端口的使用Tab.1 Usage of STM32F107VCT6 chip port
被控模塊是控制系統(tǒng)的執(zhí)行部件,具體設(shè)計(jì)如下:
1)衰減網(wǎng)絡(luò):衰減網(wǎng)絡(luò)可增加實(shí)驗(yàn)信號(hào)的靈活性,也可使用衰減網(wǎng)絡(luò)分壓得到所需小信號(hào).本設(shè)計(jì)中輸出信號(hào)通過(guò)4選1模擬開(kāi)關(guān)選擇一路信號(hào)輸入至實(shí)驗(yàn)電路板.
2)模擬開(kāi)關(guān):綜合考慮實(shí)驗(yàn)系統(tǒng)的阻抗匹配和導(dǎo)通電阻要求,信號(hào)衰減網(wǎng)絡(luò)所需的四選一模擬開(kāi)關(guān)選擇4選1模擬開(kāi)關(guān)CD4052;測(cè)量點(diǎn)切換所需的十六選一開(kāi)關(guān)選擇CD4067;二選一開(kāi)關(guān)選CD4053;雙向開(kāi)關(guān)選CD4066.
3)數(shù)字可調(diào)電阻:采用100 kΩ 的MCP41100數(shù)字電阻與10 kΩ 的MCP41010數(shù)字電阻相串聯(lián)的方案,可調(diào)范圍:0~110 kΩ,可實(shí)現(xiàn)調(diào)節(jié)精度:39.062 5 Ω.
4)數(shù)字電位器:由于電位器主要起分壓作用,重要的是分壓分辨率,由于均為8 位(256 級(jí)),兼顧電阻范圍,采用100 kΩ數(shù)字電位器MCP41100.
控制板需要能識(shí)別不同的實(shí)驗(yàn)電路板,可選方案有:
1)使用n 根信號(hào)線,將信號(hào)線分別上拉或接地.通過(guò)判斷信號(hào)線的高低電平可以識(shí)別出2n種不同的實(shí)驗(yàn)板.
2)使用1 根信號(hào)線,不同實(shí)驗(yàn)板通過(guò)不同的電阻分壓得到不同的電壓值,微控制器通過(guò)模數(shù)轉(zhuǎn)換器(ADC)讀取電壓值,從而識(shí)別不同的實(shí)驗(yàn)板.為提高系統(tǒng)可靠性,此方案需要額外提供基準(zhǔn)電壓.
本設(shè)計(jì)采用可靠性更高的第1)方案,用3根信號(hào)線識(shí)別8塊實(shí)驗(yàn)板,該方案便于擴(kuò)容(如用4根信號(hào)線識(shí)別16塊實(shí)驗(yàn)板).
實(shí)驗(yàn)電路板設(shè)計(jì)需要考慮的因素有:
1)增添電源指示燈;機(jī)械式可調(diào)電阻、開(kāi)關(guān)更換為數(shù)控可調(diào)電阻、數(shù)控模擬開(kāi)關(guān).
2)由于需要切換電路組態(tài),在原實(shí)驗(yàn)電路板中應(yīng)增加各類切換開(kāi)關(guān).
3)考慮實(shí)驗(yàn)電路負(fù)載的變化情況,需要增加數(shù)控可調(diào)電阻、數(shù)控模擬開(kāi)關(guān)等器件.
4)實(shí)驗(yàn)電路板采用的統(tǒng)一的接插件與控制電路板相連.
5)滿足控制電路板對(duì)不同的實(shí)驗(yàn)電路板識(shí)別的需求.
以差動(dòng)放大電路實(shí)驗(yàn)板為例,圖2是重新設(shè)計(jì)的實(shí)驗(yàn)電路板原理圖,新設(shè)計(jì)的主要改進(jìn)如下:
1)使用了數(shù)控可調(diào)電阻.
2)考慮共模和差模信號(hào)的輸入方式不同且需要切換,在信號(hào)輸入端加入了2 個(gè)二選一開(kāi)關(guān)和一個(gè)通斷開(kāi)關(guān),可以實(shí)現(xiàn)差模、共模信號(hào)切換,具體為,①調(diào)零:SW1 閉合,SW3、SW4 接地;②差模輸入:W1 開(kāi),SW3、SW4接信號(hào)端子;③共模輸入:SW1閉合,SW3或SW4接信號(hào)端子.
圖2 差動(dòng)放大實(shí)驗(yàn)電路原理圖Fig.2 Schematic diagram of differential amplification experiment circuit
加入連接器JSP和JSW,并進(jìn)一步考慮LED 電源指示、數(shù)字可調(diào)電阻、數(shù)字電位器等布局進(jìn)行改進(jìn)設(shè)計(jì),圖3是差分放大電路PCB的3D效果圖.
圖3 差動(dòng)放大電路的PCB的3D效果圖Fig.3 3D rendering of PCB of differential amplification circuit
微控制器軟件主要由三個(gè)線程與三個(gè)中斷組成,包括串口通信線程、網(wǎng)絡(luò)通信線程與協(xié)議棧線程,定時(shí)中斷、串口接收中斷與以太網(wǎng)接收中斷.由μC/OS-II完成線程調(diào)度,定時(shí)中斷為其提供輪轉(zhuǎn)信號(hào),接收中斷為通信提供數(shù)據(jù)緩存功能.微控制器軟件整體設(shè)計(jì)框圖如圖4所示.
圖4 微控制器軟件設(shè)計(jì)框圖Fig.4 Software design diagram of microcontroller
1)串口通信功能設(shè)計(jì)
串口選擇了常用的RS232 接口,可以與個(gè)人計(jì)算機(jī)的RS232 接口連接,或者通過(guò)CH340 芯片連接至個(gè)人計(jì)算機(jī)的USB(Universal Serial Bus)接口.串口通信功能由USART(Universal Synchronous/Asynchronous Receiver/Transmitter)接收中斷與USART線程配合實(shí)現(xiàn).串口發(fā)送數(shù)據(jù)時(shí),由USART線程直接發(fā)出;串口接收數(shù)據(jù)時(shí),觸發(fā)USART 接收中斷,USART 接收中斷將接收數(shù)據(jù)保存至緩存數(shù)組,通過(guò)信號(hào)量通知USART線程,USART線程從緩存數(shù)組獲取數(shù)據(jù)進(jìn)行處理,避免了處理接收數(shù)據(jù)過(guò)慢導(dǎo)致數(shù)據(jù)丟失.
2)網(wǎng)絡(luò)通信功能設(shè)計(jì)
為實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,移植了輕量級(jí)的TCP/IP協(xié)議棧,由于只需要與系統(tǒng)服務(wù)器進(jìn)行網(wǎng)絡(luò)交互,交互數(shù)據(jù)量較小,選用了UDP(User Datagram Protocol)傳輸層協(xié)議.具體的通信功能由UDP 線程、LwIP 線程和以太網(wǎng)中斷三者配合實(shí)現(xiàn),三者之間的通信數(shù)據(jù)通過(guò)消息郵箱投遞.發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時(shí),UDP線程將待發(fā)送數(shù)據(jù)投遞至LwIP 線程的消息郵箱,LwIP 線程添加相應(yīng)的網(wǎng)絡(luò)包頭后,通過(guò)調(diào)用底層以太網(wǎng)驅(qū)動(dòng)函數(shù)將數(shù)據(jù)包發(fā)出.接收網(wǎng)絡(luò)數(shù)據(jù)時(shí),以太網(wǎng)接收中斷接收到完整消息后,投遞至LwIP線程,由協(xié)議棧對(duì)數(shù)據(jù)包進(jìn)行解析,發(fā)現(xiàn)為對(duì)應(yīng)UDP端口數(shù)據(jù)包后再投遞至UDP線程.
1)指令解析函數(shù)
微控制器的控制功能通過(guò)調(diào)用指令解析函數(shù)執(zhí)行,該函數(shù)為各種具體的功能執(zhí)行提供了一個(gè)統(tǒng)一的調(diào)用接口.由UDP 線程與USART 線程調(diào)用傳入指令,函數(shù)對(duì)傳入指令進(jìn)行解析,過(guò)濾掉非法指令,對(duì)于合法指令,再調(diào)用相應(yīng)的指令執(zhí)行函數(shù),完成控制功能.函數(shù)的返回值為指令執(zhí)行結(jié)果的反饋,再由UDP線程反饋回服務(wù)器或USART線程反饋回進(jìn)行串口通信的上位機(jī).
2)指令執(zhí)行函數(shù)
指令執(zhí)行函數(shù)為具體實(shí)現(xiàn)控制功能的函數(shù)集合,包括了4 類函數(shù),模擬開(kāi)關(guān)控制函數(shù)、數(shù)字電位器控制函數(shù)、網(wǎng)絡(luò)參數(shù)設(shè)置函數(shù)和實(shí)驗(yàn)板識(shí)別函數(shù).前兩類函數(shù)完成了對(duì)被控模塊的控制功能,網(wǎng)絡(luò)參數(shù)設(shè)置函數(shù)提供了設(shè)置微控制器網(wǎng)絡(luò)參數(shù)的方法,可以配置微控制器接入某一子網(wǎng),實(shí)驗(yàn)板識(shí)別函數(shù)用于獲取當(dāng)前連接實(shí)驗(yàn)電路板的編碼,表明當(dāng)前可進(jìn)行的實(shí)驗(yàn)項(xiàng)目.
1)串口通信功能測(cè)試
在通信調(diào)試軟件中設(shè)置串口通信參數(shù),包括波特率、校驗(yàn)位、數(shù)據(jù)位和停止位的設(shè)置,確保與USART模塊的配置參數(shù)相同.通過(guò)串口向微控制器發(fā)送了模擬開(kāi)關(guān)控制指令0x0000、實(shí)驗(yàn)板識(shí)別指令0x1C00和錯(cuò)誤指令0xFFFF,得到的返回值為0xF0、0x07、0xF1,分別表示指令成功執(zhí)行、實(shí)驗(yàn)電路板識(shí)別碼和指令錯(cuò)誤,其中由于GPIO 端口PD13~PD15 懸空,識(shí)別為高電平狀態(tài),因此識(shí)別碼為0x07.串口通信的測(cè)試情況記錄如圖5所示.
2)網(wǎng)絡(luò)通信功能測(cè)試
在通信調(diào)試軟件中設(shè)置目標(biāo)主機(jī)的IP地址為192.168.2.2,這是微控制器軟件的初始網(wǎng)絡(luò)地址,以及固定的UDP 端口1080,選擇使用UDP 協(xié)議進(jìn)行通信. 通過(guò)網(wǎng)絡(luò)向微控制器發(fā)送了模擬開(kāi)關(guān)控制指令0x0FFF、實(shí)驗(yàn)板識(shí)別指令0x1CFF 和錯(cuò)誤指令0xDCBA,得到的返回值為0xF0、0x07、0xF1,分別表示指令成功執(zhí)行、實(shí)驗(yàn)電路板識(shí)別碼和指令錯(cuò)誤.網(wǎng)絡(luò)通信的測(cè)試情況記錄如圖6所示.
圖5 串口通信功能測(cè)試Fig.5 Serial communication function test
圖6 網(wǎng)絡(luò)通信功能測(cè)試Fig.6 Network communication function test
本設(shè)計(jì)將計(jì)算機(jī)網(wǎng)絡(luò)控制技術(shù)引入到電路實(shí)驗(yàn)教學(xué)平臺(tái),基于ARM 微控制器實(shí)現(xiàn)了遠(yuǎn)程電路實(shí)驗(yàn)系統(tǒng).該系統(tǒng)允許用戶進(jìn)行遠(yuǎn)程電路實(shí)驗(yàn)操作,有效提高了實(shí)驗(yàn)資源的利用率,該平臺(tái)便于學(xué)生利用課余時(shí)間進(jìn)行實(shí)驗(yàn),可作為電路實(shí)驗(yàn)室實(shí)驗(yàn)教學(xué)形式的重要補(bǔ)充.
閩南師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2020年1期