徐園園,鄭力新
(華僑大學信息科學與工程學院,福建 泉州 362021)
利用ISP技術的控制系統網絡實驗室的設計
徐園園,鄭力新
(華僑大學信息科學與工程學院,福建 泉州 362021)
將在系統編程(ISP)技術和虛擬儀器有機結合,開發網絡化的單片機實驗系統,實現虛擬實驗室的遠程實時功能.用戶可在遠程的客戶端在線實時地調試自己編寫的單片機程序,通過網絡對服務器端(實驗室)的單片機進行遠程在系統編程和實驗開發,完善網絡控制實驗室的功能.經測試,系統操作靈活,運行可靠.
網絡實驗室;虛擬儀器;單片機;在系統編程
在早期設計的網絡實驗室系統中,由設計者編好單片機控制程序,用戶只能在客戶端通過調節實驗參數進行控制系統的實驗,卻無法設計單片機程序.為此,本文將單片機的在系統編程(ISP)技術引進控制系統網絡實驗室,使用戶可在客戶端通過網絡對服務器端(實驗室)的單片機進行遠程在系統編程和實驗開發.
單片機網絡虛擬實驗系統的結構框圖,如圖1所示.它采用C/S模式,但不是一般意義的“胖客戶端/瘦服務器”,而是針對高校實驗室的特點設計的一種服務器(實驗服務器)與客戶端一一對應的實驗系統[1-2],由客戶端、服務器及單片機硬件電路3部分構成[3].
用戶程序運行過程中的狀態和數據由服務器端負責采集,服務器端把采集到的電機速度、誤差數據、控制數據等通過網絡傳送到客戶端,客戶端再把這些數據顯示給用戶.

圖1 控制系統的結構圖Fig.1 Control system diagram
系統的上位機功能要求客戶端通過網絡遠程控制服務器,并通過服務器端與單片機的RS232接口實現單片機程序的自動下載.其設計包括客戶端和服務器兩部分.
2.1 客戶端實現
首先,用戶在客戶端使用WAVE等常用編譯器進行源代碼的編輯、編譯及調試,將單片機實驗程序編譯成HEX或BIN文件;然后,客戶端通過基于Lab Windows/CVI平臺的控制系統網絡實驗室,應用TCP/IP協議將HEX或BIN文件發送到服務器端,以便單片機實現對其下載運行.最后,將單片機的運行結果從服務器端通過網絡返回客戶端的面板顯示.
2.2 服務器實現
在服務器端利用計算機串口進行ISP編程方式下的程序下載.服務器接收到客戶端的ISP更新請求后,接收用戶的目標程序即HEX或BIN文件形成的字節流到一個數組.然后向單片機傳送ISP更新命令,并通過RS232串口向單片機發送該字節流.用戶程序下載結束后,服務端自動向單片機發送復位信號,用戶程序開始運行.
要實現自動下載功能必須實現Lab Windows/CVI環境下對HEX文件的解析.其具體實現過程有如下3個步驟.
(1)讀取HEX文件.可用CVI函數IntFileSelectPopup(),GetFileInfo(path,&filesize)等來實現[4].
(2)對照ASCII碼轉換表,將HEX文件轉化成十六進制的ASCII碼.由于讀取的是HEX文件的十六進制字符的ASCII碼的值,要把其轉化成十六進制碼的真正表達的數值大小,應參照ASCII碼表做出1~16的碼制轉換.需要注意的是,讀取的HEX文件中的換行和行頭的“:”也代表一個的ASCII的值,要把其剔出.
(3)剔除標識符之類的字符.得到真正十六進制碼后,還需再對每行的ASCII碼進行分析,把其中的標識符等無效字符進一步剔除,就可得到單片機程序的有效數碼.
其主要源代碼如下:

C8051F310(美國Cygnal公司)一般都固化有ISP引導程序,但該引導程序是針對與它配套的IDE軟件來設計的,這顯然不能達到設計要求.因此,需要重新編寫ISP引導程序.
3.1 硬件電路設計
單片機硬件電路即下位機部分,其主要任務是接收并響應上位機傳來的信息,對各種實驗對象進行控制,對運行所得的有用數據進行顯示,并通過串口回送給上位機.圖2為單片機硬件電路的原理框圖.

圖2 硬件電路的原理框圖Fig.2 Block diagram of the hardware circuit
3.2 ISP編程
對C8051F310的16KB的FLASH進行了3段分區,分別為引導程序區(4KB)、用戶程序區(8KB)和固化程序區(4KB).引導程序區存放系統初始化、程序更新及如何跳轉的代碼;用戶程序區存放用戶自己編寫的程序代碼;固化程序區存放設計者已編好的默認程序代碼.從服務器下載的程序存放在一個8KB的外部數據存儲器,同時置位程序更新位,以使引導程序能正確查詢.
引導程序的流程圖,如圖3所示.單片機開始運行后,先進行初始化設置,包括初始化定時器/計數器、設定串行口波特率及其工作方式、設定中斷優先級、啟動定時器等.然后,讀取更新位并進行判斷.若更新位為1,調用更新用戶程序區的子程序,執行用戶程序的更新并跳轉到用戶程序區;若更新位為0,跳轉到固化程序區.如果單片機已經進入固化程序區,此時若接收到服務器的ISP命令,則在完成接收代碼后,跳轉到引導程序的更新部分,執行程序更新并跳轉到用戶程序區.

圖3 引導程序的流程圖Fig.3 Guide the process flow chart
FLASH存儲區要求在寫入新值之前,必須先擦除待編程地址的數據,FLASH存儲器是以512B的扇區為單位組織的,一次擦除操作將擦除整個扇區.因此,子程序中對FLASH的擦除和寫操作都是以扇區為單位的.首先,先擦除一個扇區;其次,讀取外部數據存儲器(XRAM),寫入已擦除的扇區;然后扇區數加1并判斷是否為16(8KB=512B×16),直到等于16,退出子程序.在對FLASH存儲器編程的過程中,要注意FLASH鎖定和關鍵碼功能、FLASH的擦除及寫操作[5].
從用戶軟件寫和擦除FLASH受FLASH鎖定和關鍵碼功能的保護.在進行FLASH操作之前,必須按順序向FLASH鎖定和關鍵碼寄存器(FL KEY)寫入正確的關鍵碼0xA5,0xF1.在使用MOVX指令對FLASH存儲器寫入之前,必須先允許FLASH寫操作.
擦除一個扇區有如下6個步驟:(1)禁止中斷;(2)置“1”程序存儲器擦除允許位(PSCTL中的PSEE),以允許FLASH扇區擦除;(3)置“1”程序存儲器寫允許位(PSCTL中的PSWE),以允許FLASH寫入;(4)向FL KEY寫第1個關鍵碼(0xA5);(5)向FL KEY寫第2個關鍵碼(0xF1);(6)用MOVX指令向待擦除頁內的任何一個地址寫入一個數據字節.

允許FLASH寫操作的過程:(1)將程序存儲寫允許位PSWE(PSCTL.0)設置為邏輯“1”;(2)按順序向FLASH鎖定寄存器(FL KEY)寫入FLASH關鍵碼.PSWE位將保持置位狀態,直到被軟件清除.寫FLASH存儲器可以清除數據位,但不能使數據位置“1”,只有擦除操作能將FLASH中的數據位置“1”.因此,在寫入新值之前,必須先擦除待編程的地址.
以直流電機轉速實驗為例.通過基于ISP技術的單片機網絡實驗系統,用戶可在客戶端編寫電機控制實驗的單片機程序,并將其下載到遠程服務器端的單片機系統中.經過實驗運行,可達到實時控制直流電機轉速的系統要求.客戶端的運行結果,如圖4所示.

圖4 客戶端運行結果Fig.4 The results of clients running
將ISP技術和虛擬儀器有機結合,開發了網絡化的單片機實驗系統,從而實現了虛擬實驗室的遠程實時功能.該系統操作靈活,運行可靠,為組建基于網絡的單片機實驗開發系統提供一種新思路,可在高校和科研機構等推廣應用.
[1]INGVAR G.Remote laboratory experiments in electrical engineering education[C]//Proceedings of Fourth IEEE International Caracas Conference on Devices,Circuits and Systems.Aruba:IEEE,2002:1-5.
[2]DEEPAK S,BABU J.An internet-mediated-process control laboratory[J].IEEE Control Systems Magazine,2003,23(1):11-18.
[3]徐園園,鄭力新.TCP/IP和DataSocket技術在網絡虛擬實驗室中的應用[J].電氣電子教學學報,2007,29(4):85-87.
[4]張毅剛,喬立巖.虛擬儀器軟件開發環境Lab Windows/CVI編程指南[M].北京:機械工業出版社,2002.
[5]張迎新,雷文,姚靜波.C8051F系列SOC單片機原理及應用[M].北京:國防工業出版社,2005.
Design of the Network Control System Laboratory Based on ISP Technology
XU Yuan-yuan,ZHEN G Li-xin
(College of Information Science and Engineering,Huaqiao University,Quanzhou 362021,China)
This article designs the network single-chip experimental system by the combination of in-system programming(ISP)technology and virtual instruments.Through internet,users on the client can remotely debug their single-chip program,and program in the system to the single-chip on the server side(Lab).ISP technology makes functions of the network control laboratory more perfect.After testing,the system is flexible and reliable.
network laboratory;virtual instrument;single-chip;in-system programming
TP 391.9;TP 273+.5
A
1000-5013(2010)04-400-04
(責任編輯:魯 斌 英文審校:吳逢鐵)
2009-02-19
徐園園(1980-),女,助教,主要從事虛擬儀器及智能檢測控制技術的研究.E-mail:hixyy@126.com.
教育部科技研究重點項目(207145)