姜日凡
1 引言
超載限制器是配置在重型起重設備的安全裝置之一,在吊裝作業過程中對被吊裝的貨物重量起到監測作用。它根據該機械的額定重量作限制設定,當起吊重量達到限定值或超過限定值時,超載限制器就立刻發出報警甚至將自動切斷電源迫使吊鉤下降,放棄對超載貨物的吊裝。由于用戶的限價原因使得這種產品一直處于較低品位,但考慮到超載限制器是防止因超載而造成惡性事故的重要裝置,必須在性能、功能上加以提高來滿足實際需要并在產品成本上加以限制,提高市場競爭能力。
傳統的超載限制器采用單片機為核心部件控制和處理超載限制器的整個監測過程,傳統的超載限制器的軟硬件有一些缺點,硬件缺點是芯片和元器件太多,造成超載限制器體積大,抗干擾性差。軟件缺點是大部分單片機flash太小無法嵌入操作系統,一般主程序采用循環掃描,造成現場的實時性差。
我們采用移植了μC/OS-II操作系統的STM32F103為核心芯片的超載限制器,可以有效地避免傳統超載限制器的軟硬件的缺點;硬件方面減少了大量外部元器件(如:數據采集芯片、存儲芯片、通信芯片等),提高了抗干擾性,減小了體積,同時價格低廉,降低了產品成本;軟件方面移植了μC/OS-II操作系統,提高了系統的實時性和程序的擴展性。
2 STM32F103芯片性能和特點
STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應用專門設計的ARM Cortex-M3內核。ARM的Cortex-M3處理器是最新一代的嵌入式ARM處理器,它為實現MCU的需要提供了低成本的平臺、縮減的管腳數目、降低的系統功耗,同時提供卓越的計算性能和先進的中斷系統響應。
STM32系列按性能分成兩個不同的系列:STM32F103“增強型”系列和STM32F101“基本型”系列。增強型系列時鐘頻率達到72MHz,是同類產品中性能最高的產品;基本型時鐘頻率為36MHz,以16位產品的價格得到比16位產品大幅提升的性能,是16位產品用戶的最佳選擇。兩個系列都內置32K到128K的閃存,不同的是SRAM的最大容量和外設接口的組合。時鐘頻率72MHz時,從閃存執行代碼,STM32功耗36mA,是32位市場上功耗最低的產品,相當于0.5mA/MHz。
STM32F103xx增強型系列使用高性能的ARM Cortex-M3 32位的RISC內核,工作頻率為72MHz,具有單周期乘法和硬件除法,內置高速存儲器(高達128K字節的閃存和20K字節的SRAM),豐富的增強I/O端口(多功能雙向5V兼容的I/O口和所有I/O口可以映像到16個外部中斷)和聯接到兩條APB總線的外設。所有型號的器件都包含2個12位的ADC(1us轉換時間和0至3.6V的轉換范圍)、3個通用16位定時器(每個定時器有多達4個用于輸入捕獲/輸出比較/PWM或脈沖計數的通道)和一個PWM定時器,還包含標準和先進的通信接口:多達2個I2C(SMBus/PMBus)和2個SPI同步串行接口(18兆位/秒)、3個USART(支持ISO7816,LIN,IrDA接口和調制解調控制)、一個USB和一個CAN。
STM32F103xx增強型系列工作于-40°C至+105°C的溫度范圍,供電電壓2.0V至3.6V,一系列的省電模式保證低功耗應用的要求。
這些豐富的外設配置,使得STM32F103xx增強型微控制器適合于多種應用場合:電機驅動和應用控制、醫療和手持設備、PC外設和GPS平臺、工業應用(如:可編程控制器、變頻器等)、警報系統、視頻對講和暖氣通風空調系統。
3 μC/OS-II在STM32F103上的移植
我們采用移植了μC/OS-II操作系統的STM32F103為核心芯片的超載限制器,這樣就有效的提高了超載限制器的實時性。μC/OS-II是一個完成的,可移植、可固化、可裁減的搶占式實時多任務操作系統內核。主要用ANSI的C語言編寫,少部分代碼是匯編語言。它的主要特點如下:
(1)公開源代碼,很容易就能把操作系統移植到各個不同的硬件平臺上;
(2)可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上;
(3)可裁剪性,有選擇的使用需要的系統服務,以減少所需的存儲空間;
(4)占先式,完全是占先式的實時內核,即總是運行就緒條件下優先級最高的任務;
(5)多任務,可管理64個任務,任務的優先級必須是不同的,不支持時間片輪轉調度法;
(6)可確定性,函數調用與服務的執行時間具有其可確定性,不依賴于任務的多少;
(7)實用性和可靠性,成功應用該實時內核的實例,是其實用性和可靠性的最好證據。
由于μC/OS-II僅是一個實時內核,這就意味著它不像其他實時存在系統那樣提供給用戶的只是一些API函數接口,還有很多工作需要用戶自己去完成。
下面看看ucosii代碼組成:
os_core.c是ucosii的核心,它包含了內核初始化,任務切換,事件塊管理等,其中事件塊是各個同步量的基礎,如:os_flag.c、os_mbox.c、os_mutex.、os_q.c、os_sem.c 是各個同步量管理代碼;os_mem.c 是內存管理代碼;os_time.c 是時間管理代碼,主要做各種延時;os_tmr.c是定時器管理代碼。
移植相關文件如下:os_cpu.h是進行數據類型定義,處理器相關代碼和幾個函數原型;os_cpu_c.c:是定義一些用戶hook函數;os_cpu_a.asm:是移植需要用匯編代碼完成的函數,主要就是任務切換函數;os_dbg.c是內核調試相關數據和函數,可以不改。
4 結語
我們采用移植了μC/OS-II操作系統的STM32F103為核心芯片的超載限制器,該控制系統較以往系統具有功能強、抗干擾能力強、實時性強、體積小、操作方便等特點,多個參數顯示及超載限動報警保護使操作人員能及時了解起重機的工作情況,提高了工作效率,有效地預防了事故的發生。
參考文獻
[1] 劉軍.例說STM32[M].北京航空航天大學出版社,2011.
[2] 召貝貝譯.嵌入式實時操作系統μC/OS-II[M].北京航空航天大學出版社, 2005.