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