1 電磁打樁機及其功能要求簡介
電磁驅動是指導體在電磁場中受到電磁作用力而發生運動。電磁驅動器是由單組線圈外加軛鐵構成。當電樞進入電磁驅動器中時,線圈不通電,由于軛鐵和電樞都是用軟磁性材料制成,它們之間沒有作用力;當線圈通電,軛鐵和電樞都被磁化,軛鐵和電樞以及軛鐵與電樞之間的空氣間隙組成閉合磁路,電磁驅動器與電樞之間將產生電磁相互作用。但這種相互作用與電樞和驅動器之間的相對位置有關,當電樞處于驅動器的中平面上,磁阻最小,作用力為零;當電樞處于驅動器的某一端時,作用力使電樞向另一端運動。要強調的是,這種作用力的大小除了與電樞和驅動器相對位置有關外,僅與線圈電流的大小有關,而與電流的變化率無關。
圖1 電磁打樁機結構圖
如果將電磁驅動器與某個物體相連接,并且讓其在與電樞發生相互作用時受到的作用力方向總是朝一個方向,那么電磁驅動器就能帶著那個物體總是朝另一個方向運動。筆者所要設計的電磁打樁機正是運用了上面的原理,電磁打樁機結構如圖1所示。
電磁打樁機工作的關鍵是線圈放電時機、放電時間和放電強度的選擇,而且對準確性和實時性的要求很高,靠傳統的機械和電子手段已經不能解決問題。為了保證控制的準確性和快速反應能力,必須采用計算機技術。在打樁過程中可能需要對樁的狀態和性能做分析,樁的動測技術同樣也要采用計算機技術來實現對信號的采集和處理分析。由于電磁打樁機機電部件多而且工作環境惡劣,在野外難免會發生故障,這就要求它能具有一定的自我故障診斷功能。
2 電磁打樁機控制器總體結構設計
嵌入式系統作為一個專用的計算機非常適合這種場合,根據電磁打樁機的功能要求和嵌入式系統的一般設計原則并結合未來的發展趨勢,電磁打樁機控制器的結構設計如圖2所示。
圖2 電磁打樁機控制器結構圖
3 電磁打樁機控制器的硬件
(1) 微處理器
一個嵌入式系統最核心的硬件是微處理器,筆者選擇SAMSUNG公司的S3C44B0X作為電磁打樁機控制器的處理器,這是一款專為手持設備和一般應用提供的高性價比和高性能的ARM7TDMI核和RISC結構的32位微處理器。S3C44B0X自身帶有擴展內存控制器、LCD控制器、71個通用I/O、8個10位ADC、帶PWM的定義器等。
(2) 存儲器系統
對于系統的存儲結構,采用BIOS+系統內存+海量存儲器的形式。系統通過BIOS啟動,然后將硬盤里面的可執行文件拷貝到系統內存中,系統開始運行。BIOS采用NOR FLASH(線性FLASH),系統內存采用SDRAM,海量存儲采用NAND FLASH(非線性FLASH)。S3C44B0X的地址空間具有8個Bank,在這里Bank0用作BIOS,Bank1用作海量存儲,Bank6用作系統內存。S3C44B0X支持多種數據總線,這里采用的是16位數據總線,因此在存儲器與處理器相連的時候要將存儲器地址引腳A0和S3C44B0X的地址引腳A1相連,其他對應相連。
(3) 人機接口
人機接口包括鍵盤和LCD顯示。鍵盤采用4×4的小鍵盤,分別有0~9、小數點、↑、↓、←、→、Enter這16個鍵。鍵盤采用行列布局,以掃描的方式工作。鍵盤的行列線分別接在S3C44B0X的8個通用I/O口上。
由于S3C44B0X內部帶有LCD控制器,因此只需外接LCD顯示屏,配以外圍的驅動電路,再對LCD的寄存器進行編程即可。這里給電磁打樁機控制配置的顯示屏是常見的320×240的單色LCD。
(4) 系統接口
為了使電磁打樁機控制器能夠與外界交換信息,一些接口是必不可少的。在這里使用RS-232C作為其串行接口。S3C44B0X本身帶有UART(通用異步收發器),可以提供兩個獨立的異步串行I/O口。由于RS-232C和UART端口的電平特性不同,要通過電平轉換芯片如MAX3232等來實現兩者之間電平的轉換。
USB接口是已漸漸成為標準接口,具有很強的通用性和擴展性。S3C44B0X沒有USB控制器,因此通過外部的USB控制器USBN9603來擴展出一個USB接口,該接口是作為設備接口使用的。
隨著網絡技術的發展,特別是IPv6技術的發展,這使得每一個嵌入式設備都有機會接入因特網。電磁打樁機控制器一旦能夠與網絡連接,就可以通過網絡實現遠程控制、遠程診斷和軟件的遠程下載等。S3C44B0X沒有自帶Ethernet接口,這就需要通過外部Ethernet控制芯片來完成。這里用的是最常見的Ethernet控制芯片RTL8019AS。Ethernet的物理接口一般是RJ-45接口,RTL8019AS的數據收發線經隔離變壓器與RJ-45相對應的端口相連。
(5) 數字、模擬I/O
電磁打樁機由許多部件組成,對各個組成部件的開關控制、部件狀態的監測等需要許多數字I/O口;而且設備還有各種傳感器,這些傳感器發回的大多是模擬信號,這就需要模擬I/O口。S3C44B0X本身帶有71個通用數字I/O,但很多都被占用,筆者用兩片8255A來擴展到24路輸入和24路輸出。電磁打樁機除了傳感器之外,其他部件與控制器之間的傳輸的信號基本上沒有模擬信號,而且S3C44B0X本身帶有8個10位ADC,數量和精度都已經能夠滿足使用要求,因此無需專門設計模擬信號輸入輸出。
(6) 外圍輔助電路
由于電磁打樁機控制器各個器件的工作電壓是不同的,如S3C44B0X內核為2.5V,I/O為3.3V,LCD驅動需要28V等。通過MAX1677可以從0.7~5.5V的輸入得到3.3V和28V的電壓,2.5V的電壓則通過對3.3V的電壓經二極管降壓得到。
其他的如復位、時鐘電路也是必不可少的。
4 電磁打樁機控制器的軟件
(1) 操作系統μC/OS-Ⅱ
嵌入式系統的軟件一般可分為兩種,一種是沒有操作系統的,一種是有操作系統的。沒有操作系統的通常是通過CPU在所有任務之間輪回調度來實現,整個程序是一個無限循環。由于電磁打樁機控制器所要做的較多,而且對于某些事情線圈放電參數計算,其實時性要求很高,這就要用實時嵌入式操作系統來管理。這里為電磁打樁機控制器選擇的操作系統是Jean J. Labrosse的μC/OS-Ⅱ。
μC/OS-Ⅱ是一款開放源碼的實時嵌入式操作系統,具有可移植性強、可固化、可裁剪、內核短小精悍等特點,是比較理想的低端嵌入式操作系統。
(2) μC/OS-Ⅱ在S3C44B0X上的移植
μC/OS-Ⅱ在設計之初就考慮到了在不同CPU上運行,因此將和CPU與編譯器相關的部分都獨立出來。μC/OS-Ⅱ與CPU和編譯器有關的部分都集中在OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C文件中。將μC/OS-Ⅱ移植到S3C44B0X就要根據S3C44B0X和編譯器對這三個文件進行改寫。
OS_CPU.H文件包含與編譯器相關的數據類型、堆棧的定義以及用于開關中斷的宏的定義。
OS_CPU_A.ASM中要改實現的是與處理器相關的幾個函數:運行優先級最高的就緒任務函數OSStartHighRdy()、任務級的任務切換函數OSCtxSw()、中斷級的任務切換函數OSIntCtxSw()和時鐘節拍中斷服務函數OSTickISR()。這些函數只能用匯編語言編寫。
OS_CPU_C.C中需要用C語言實現和操作系統有關的幾個函數:任務堆棧初始化函數OSTaskStkInit()和另外5個鉤子函數。鉤子函數可以不添加代碼。
對這三個文件進行改寫后經調試μC/OS-Ⅱ就可以在S3C44B0X上運行了。
(3) μC/OS-Ⅱ網絡連接的實現
設備要與現有因特網連接就必須要支持TCP/IP協議。μC/OS-Ⅱ只提供了一個內核,它本身并不帶有TCP/IP協議,但通過自己編寫代碼或使用第三方的軟件可以實現μC/OS-Ⅱ的網絡連接。這里將LwIP移植到μC/OS-Ⅱ上來實現網絡連接。
LwIP是瑞士計算機學院(SICS)的Adam Dunkels等人開發的一套用于嵌入式系統的開發源碼的TCP/IP協議棧。LwIP實現的重點是在保持TCP協議主要功能的基礎上減少對RAM的需求。一般只需要幾十K的RAM和ROM就可以運行,非常適合在低端嵌入式系統中使用。LwIP在設計之時就充分考慮了在各種操作系統上的移植,將與硬件、操作系統和編譯器相關的都獨立出來。
LwIP中與CPU或編譯器有關的文件包括cc.h、cpu.h和perf.h,這些文件定義了數據長度、字的高低位順序等。
sys_arch.c中的內容主要是與操作系統有關的一些結構和函數。在這里要實現的有系統初始化sys_init()、新線程的創建sys_thread_new()、信號量的創建和使用sys_sem_t、消息的創建和使用sys_mbox_t,以及等待超時時間timeout的實現。
在lib_arch.c中有一些LwIP用到的外部函數要實現,這些函數主要是改變字節順序的函數和一些字符串處理函數。
LwIP為網絡設備制定了一個ethernetif.c的模板用于網絡設備的驅動。根據使用的網絡芯片的不同對ethernetif.c文件進行改寫。驅動中要做的就是對網卡的初始化、接收、發送和中斷處理操作。
(4) 針對電磁打樁機的應用程序
針對電磁打樁機的實際工作情況和其控制器的設計,其應用程序基本上包括如下幾個部分:
? 人機接口程序,如鍵盤和LCD顯示;
? 數字、模擬I/O口處理程序;
? 系統自檢、故障診斷程序;
? 打樁程序;
? 樁測試程序;
? 其他服務程序。
μC/OS-Ⅱ中的應用程序是以任務的形式出現。根據實際使用要求,筆者為上述六種任務制定相應的優先級。μC/OS-Ⅱ為自己保留了8個任務的,用戶可以使用的有56個。將鍵盤任務的優先級定為10,是應用程序中的最高優先級,其他應用任務的優先級依次降低。
由于在打樁時5和6程序并不是必要的,因此只是在被人為激活后才進入運行,運行結束后任務進入休眠狀態。
5 結語
基于ARM核微處理器和μC/OS-Ⅱ操作系統的嵌入式系統作為電磁打樁機控制器可以有效實現對設備的控制并且能夠具有一定的智能化水平。同時由于硬件設計上充分考慮到了大多數應用的需要,軟件結構采用操作系統+應用程序的模型,只要對硬件做很小的改到,通過軟件編程就可以使它很容易應用到其他應用場合