基于上位機(jī)控制自動(dòng)接線的單片機(jī)實(shí)驗(yàn)系統(tǒng)研究
0 引言
對(duì)單片機(jī)實(shí)驗(yàn)系統(tǒng)的基本需求是:在有限的IO 接口上可以進(jìn)行多個(gè)項(xiàng)目的實(shí)驗(yàn)。為了實(shí)現(xiàn)這個(gè)基本需求,在進(jìn)行多個(gè)不同項(xiàng)目實(shí)驗(yàn)時(shí),要對(duì)單片機(jī)各個(gè)IO口進(jìn)行現(xiàn)場(chǎng)重接線。傳統(tǒng)的單片機(jī)實(shí)驗(yàn)裝置現(xiàn)場(chǎng)重接線方法有2類:
一類是現(xiàn)場(chǎng)手工插拔自鎖緊接插件;
另一類是現(xiàn)場(chǎng)手工插拔積木式實(shí)驗(yàn)?zāi)K。
這兩類接線方式的實(shí)質(zhì)都屬于機(jī)械式金屬接觸。單片機(jī)實(shí)驗(yàn)系統(tǒng)經(jīng)過較長(zhǎng)時(shí)間的使用,都難免會(huì)發(fā)生金屬接觸件之間的接觸不良現(xiàn)象。特別是自鎖緊接插件,問題更為嚴(yán)重:即使線芯開路了,從表面也難以通過肉眼發(fā)覺。導(dǎo)致實(shí)驗(yàn)成功率低下,占用學(xué)生甚至指導(dǎo)老師的排故時(shí)間,嚴(yán)重影響了實(shí)驗(yàn)效果?,F(xiàn)代單片機(jī)實(shí)驗(yàn)或單片機(jī)開發(fā)都離不開上位機(jī)對(duì)軟件的編譯和程序的下載。在實(shí)驗(yàn)現(xiàn)場(chǎng)進(jìn)行手工重接線時(shí)上位機(jī)處于空閑狀態(tài)。利用上位機(jī)控制對(duì)實(shí)驗(yàn)現(xiàn)場(chǎng)進(jìn)行自動(dòng)重接線,是該研發(fā)項(xiàng)目研究的重要內(nèi)容。
1 項(xiàng)目研發(fā)思路概述
項(xiàng)目的研發(fā)思路見圖1 所示的流程圖。首先從底層做起,經(jīng)過深入調(diào)研,對(duì)自己要研制的項(xiàng)目進(jìn)行定位,根據(jù)各個(gè)學(xué)校提出的具體要求進(jìn)行篩選,制定出總共需要多少個(gè)實(shí)驗(yàn)項(xiàng)目,并為各個(gè)實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)出對(duì)應(yīng)的實(shí)驗(yàn)電路圖,這些實(shí)驗(yàn)電路圖作為項(xiàng)目研發(fā)的基礎(chǔ)理論依據(jù)。根據(jù)這實(shí)驗(yàn)電路圖研制實(shí)驗(yàn)系統(tǒng)硬件裝置,各個(gè)實(shí)驗(yàn)項(xiàng)目對(duì)應(yīng)的元器件(包含單片機(jī))布置在電路板的頂層,控制現(xiàn)場(chǎng)自動(dòng)重接線的電子式交叉開關(guān)電路所用到的元器件( 包含F(xiàn)PGA 和專用模擬開關(guān)陣列ADG1161)布置在電路板的底層。
上位機(jī)和實(shí)驗(yàn)系統(tǒng)通信采用USB連接,共要傳輸兩類數(shù)據(jù),實(shí)驗(yàn)項(xiàng)目編號(hào)和單片機(jī)實(shí)驗(yàn)的目標(biāo)程序。上位機(jī)應(yīng)用軟件程序采用Visual C++編制,應(yīng)用程序?qū)⒏鱾€(gè)實(shí)驗(yàn)電路圖與實(shí)驗(yàn)編號(hào)一一對(duì)應(yīng)。當(dāng)要做某個(gè)實(shí)驗(yàn)項(xiàng)目時(shí),可以啟動(dòng)該實(shí)驗(yàn)編號(hào),自動(dòng)調(diào)出實(shí)驗(yàn)電路圖,將實(shí)驗(yàn)編號(hào)通過接口電路傳送給實(shí)驗(yàn)系統(tǒng)的控制部分,實(shí)驗(yàn)系統(tǒng)控制部分獲得該實(shí)驗(yàn)編號(hào)后,由FPGA內(nèi)的51核,根據(jù)項(xiàng)目編號(hào)對(duì)應(yīng)出電子式交叉開關(guān)的接通與斷開,實(shí)現(xiàn)現(xiàn)場(chǎng)自動(dòng)重接線,使實(shí)驗(yàn)系統(tǒng)滿足實(shí)驗(yàn)電路圖接線要求。
此時(shí)便可以在上位機(jī)上做編程實(shí)驗(yàn),由專門的編譯系統(tǒng)(如Keil uV4或IAR)編譯實(shí)驗(yàn)程序,產(chǎn)生目標(biāo)代碼(*.bin 或*.hex),再由上位機(jī)通過所編制的應(yīng)用程序?qū)⒃撃繕?biāo)代碼傳送給實(shí)驗(yàn)系統(tǒng)的單片機(jī)內(nèi)ROM中保存。單片機(jī)復(fù)位后便開始運(yùn)行該目標(biāo)程序,實(shí)現(xiàn)用戶實(shí)驗(yàn)?zāi)康摹?/p>
2 實(shí)驗(yàn)系統(tǒng)中的電子式交叉開關(guān)及其控制電路設(shè)計(jì)
項(xiàng)目研發(fā)的關(guān)鍵是具有能按照不同的實(shí)驗(yàn)電路指導(dǎo)現(xiàn)場(chǎng)自動(dòng)重接線的裝置。即實(shí)驗(yàn)系統(tǒng)的控制器按照上位機(jī)下達(dá)的實(shí)驗(yàn)項(xiàng)目號(hào)對(duì)應(yīng)出實(shí)驗(yàn)電路,控制交叉開關(guān)進(jìn)行現(xiàn)場(chǎng)自動(dòng)接線。實(shí)現(xiàn)該控制功能所需的主要控制器件為2種:一種是超大規(guī)模現(xiàn)場(chǎng)可編程的FPGA芯片;另一種是高性能的模擬開關(guān)陣列。通過對(duì)這兩種器件的有機(jī)組合,得到控制器電路結(jié)構(gòu)框圖如圖2所示。
FPGA芯片采用賽靈思公司(Xilinx,Inc.)的Spartan?3E系列中XC3S1200E[3],器件密度多于百萬門,該系列能方便實(shí)現(xiàn)微處理器、微控制器和數(shù)字信號(hào)處理器功能。
支持的通用I/O種類多,可通過串行(SPI)和并行閃存進(jìn)行器件配置,也可作為普通DDR存儲(chǔ)接口,這些特性減少了對(duì)其他分立器件的需求,從而可大大簡(jiǎn)化應(yīng)用系統(tǒng)的設(shè)計(jì)。低導(dǎo)通電阻模擬開關(guān)陣列ADG1611[4]由ADI公司開發(fā)銷售,為每片4個(gè)通道的模擬開關(guān),寬電壓供電,軌到軌輸出,其低到1 Ω的導(dǎo)通電阻和大到每通道175 mA的連續(xù)電流非常適合于本研發(fā)項(xiàng)目的實(shí)際應(yīng)用。
3 控制實(shí)驗(yàn)項(xiàng)目電路設(shè)計(jì)舉例
LED發(fā)光二極管流水燈[5]和4×4矩陣鍵盤是單片機(jī)實(shí)驗(yàn)中最常用的兩個(gè)實(shí)驗(yàn)實(shí)例,這里給出該研發(fā)項(xiàng)目中關(guān)于這兩個(gè)實(shí)驗(yàn)項(xiàng)目的切換的設(shè)計(jì)電路原理圖,見圖3.
由圖3可知,F(xiàn)PGA 控制著兩組ADG1611模擬開關(guān)陣列,第一組連接LED 流水燈;第二組連接矩陣鍵盤。
當(dāng)選擇做LED 流水燈實(shí)驗(yàn)時(shí),F(xiàn)PGA 控制第一組ADG1611 模擬開關(guān)接通、第二組模擬開關(guān)斷開;反之,當(dāng)選擇做矩陣鍵盤實(shí)驗(yàn)時(shí),F(xiàn)PGA控制第一組ADG1611模擬開關(guān)斷開、第二組模擬開關(guān)接通。當(dāng)要同時(shí)使用LED發(fā)光二極管和矩陣鍵盤實(shí)驗(yàn)時(shí),可以通過FPGA控制第三組(或第若干組)的ADG1611模擬開關(guān)陣列接通實(shí)驗(yàn)單片機(jī)別的IO口(圖中未畫出)。如何進(jìn)行現(xiàn)場(chǎng)自動(dòng)重接線,完全由當(dāng)前實(shí)驗(yàn)號(hào)所對(duì)應(yīng)的實(shí)驗(yàn)電路圖指導(dǎo)控制,項(xiàng)目研發(fā)時(shí)已經(jīng)充分加以考慮了。限于篇幅,這里不具體贅述。
4 結(jié)語
經(jīng)過20臺(tái)(套)樣機(jī)試制成功并付諸于實(shí)驗(yàn)時(shí)正常使用一個(gè)學(xué)期以來,證明采用基于上位機(jī)控制自動(dòng)接線單片機(jī)實(shí)驗(yàn)系統(tǒng)進(jìn)行實(shí)驗(yàn)教學(xué)后,由于由系統(tǒng)啟動(dòng)現(xiàn)場(chǎng)自動(dòng)重接線,節(jié)省了以往老師指導(dǎo)學(xué)生進(jìn)行手工重接線時(shí)間,克服了手工重接線容易接錯(cuò)或接觸不良或線芯斷線等導(dǎo)致的實(shí)驗(yàn)失敗現(xiàn)象,提高了實(shí)驗(yàn)效率,使學(xué)生在有限的實(shí)驗(yàn)教學(xué)課時(shí)內(nèi)學(xué)到更多的知識(shí)。