国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ARM技術(shù)在步進(jìn)電機(jī)控制系統(tǒng)中的設(shè)計(jì)研究①

2019-02-15 03:09:48
關(guān)鍵詞:堆棧處理器芯片

董 瑩

(青海民族大學(xué), 青海 西寧 810007)

0 引 言

ARM處理器以其體積小、低耗能、成本低、性能高等優(yōu)勢(shì)廣泛占領(lǐng)了在嵌入式系統(tǒng)領(lǐng)域。μC/OS-II 提供了如郵箱、隊(duì)列、信號(hào)量、固定大小的內(nèi)存分區(qū)等多項(xiàng)系統(tǒng)服務(wù)并在醫(yī)療設(shè)備領(lǐng)域、發(fā)動(dòng)機(jī)控制領(lǐng)域、網(wǎng)絡(luò)設(shè)備領(lǐng)域、自動(dòng)提款機(jī)設(shè)置領(lǐng)域及工業(yè)機(jī)器人設(shè)計(jì)領(lǐng)域等諸多生活以及工業(yè)領(lǐng)域獲得了廣泛的應(yīng)用。王燕東等人(2016)提出了三路步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)思路,在提高基礎(chǔ)系統(tǒng)的實(shí)用性以及后期拓展功能的前提之下,完善了系統(tǒng)的實(shí)時(shí)性,提高了系統(tǒng)的可控性以及穩(wěn)定性[1]。常博博等人(2017)介紹了控制系統(tǒng)的發(fā)展歷程,針對(duì)不同的控制對(duì)象,將ARM技術(shù)應(yīng)用于不同控制系統(tǒng)中,并提出了SoC功能的控制系統(tǒng)實(shí)際工作情況,并對(duì)芯片處理器的優(yōu)勢(shì)做出簡(jiǎn)單介紹[2]。張金玲等人(2017)將ARM技術(shù)應(yīng)用于傳感器控制系統(tǒng)中,設(shè)計(jì)了無(wú)刷直流電機(jī)控制系統(tǒng),從而完成了控制系統(tǒng)實(shí)際運(yùn)行過(guò)程中對(duì)于機(jī)器的轉(zhuǎn)速以及電流調(diào)控[3]。綜上所示,目前ARM技術(shù)在步進(jìn)電機(jī)控制中的設(shè)計(jì)研究目前處于空白狀態(tài),筆者主要研究ARM處理器及其編程模型,及嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II的內(nèi)核結(jié)構(gòu),實(shí)現(xiàn)μC/OS-II在ARM上的移植,并在此平臺(tái)上進(jìn)行步進(jìn)電機(jī)控制程序設(shè)計(jì),控制步進(jìn)電機(jī)啟停、正反轉(zhuǎn)及加減速。

1 μC/OS-II在ARM上的移植

1.1 OS_CPU.h的項(xiàng)目移植

μC/OS-II在應(yīng)用于某一類(lèi)特定處理器時(shí)的移植工作將工作重點(diǎn)設(shè)置在多任務(wù)切換上,這是由于計(jì)算機(jī)設(shè)備的讀寫(xiě)寄存器是不能采用C語(yǔ)言完成代碼保存與恢復(fù)工作的,也有一部分計(jì)算機(jī)處理系統(tǒng)只允許利用特定的處理器匯編語(yǔ)言來(lái)恢復(fù)處理器現(xiàn)場(chǎng),在這兩類(lèi)情況發(fā)生時(shí),需要采取μC/OS-II移植到ARM處理器的方式來(lái)解決問(wèn)題,這一處理方式只需要修改三個(gè)與體系結(jié)構(gòu)相關(guān)的數(shù)據(jù)文件即可達(dá)到效果。數(shù)據(jù)文件是來(lái)定義堆棧單位的,步進(jìn)定義了需要保護(hù)以及恢復(fù)的數(shù)據(jù)類(lèi)型,還提出了文件需要與寄存器長(zhǎng)度一致的要求。處理器的堆棧增長(zhǎng)方式有兩種:從上向下和從下向上。此處選擇1表示從上向下增長(zhǎng)(高地址到低地址),反之0表示從下向上增長(zhǎng)。

1.2 OS_CPU.c的項(xiàng)目移植

OS_CPU.c的項(xiàng)目移植工作由三個(gè)工作步驟組成,第一步需要完成任務(wù)堆棧初始化,這一步主要是通過(guò)調(diào)用OSTaskCreate()或OSTaskCreateExt()這兩個(gè)具體函數(shù)來(lái)完成。第二部需要利用ARM體系結(jié)構(gòu),保存任務(wù)堆??臻g的初始化數(shù)據(jù)。第三步,在初始化工作結(jié)束后,需要將OSTaskStkInit()函數(shù)撤回到新的堆棧任務(wù)中,并完成任務(wù)的保存。OSTaskStkInit()初始化后的堆棧內(nèi)容如圖1所示。

圖1 OSTaskStkInit()初始化后的堆棧內(nèi)容關(guān)系

1.3 OS_CPU_A.s的項(xiàng)目移植

OS_CPU_A.s的項(xiàng)目移植共分為以下幾步:首先需要確定時(shí)鐘節(jié)拍中斷服務(wù)函數(shù),這一函數(shù)主要是用來(lái)確定系統(tǒng)的額外開(kāi)銷(xiāo)工作的,時(shí)鐘節(jié)拍率與系統(tǒng)的額外開(kāi)銷(xiāo)呈正比關(guān)系。本次測(cè)試所設(shè)計(jì)的系統(tǒng)采用S3C2410的timer 0作為時(shí)鐘節(jié)拍源。其次,需要進(jìn)行OSTimeTick()函數(shù)的調(diào)用,如果在系統(tǒng)工作的過(guò)程中有優(yōu)先級(jí)更高的任務(wù)插入,則需要中斷嵌套的最后一層。最后需要退出臨界區(qū)域,而宏ARMDisableInt需要在系統(tǒng)進(jìn)入臨界狀態(tài)之前關(guān)閉中斷狀態(tài),在系統(tǒng)退出臨界區(qū)時(shí)重新恢復(fù)中斷狀態(tài)。

2 實(shí)驗(yàn)結(jié)果討論

2.1 驅(qū)動(dòng)電路設(shè)計(jì)評(píng)價(jià)

設(shè)計(jì)選用二相四拍步進(jìn)電機(jī)系統(tǒng),通過(guò)使用控制換相順序的方式來(lái)完成對(duì)步進(jìn)電機(jī)的控制,由于所使用的S3C2410 的GPIO驅(qū)動(dòng)能力有限,所以使用ULN2003達(dá)林頓集成驅(qū)動(dòng)芯片來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)。ULN2003是高耐壓、大電流、內(nèi)部由七個(gè)硅NPN達(dá)林頓管組成的驅(qū)動(dòng)芯片,其每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7KΩ的基極電阻。驅(qū)動(dòng)系統(tǒng)要求信號(hào)必須為脈沖信號(hào),沒(méi)有脈沖的時(shí)候,步進(jìn)電機(jī)靜止,如果加入適當(dāng)?shù)拿}沖信號(hào),驅(qū)動(dòng)系統(tǒng)就會(huì)以一定的角度轉(zhuǎn)動(dòng),系統(tǒng)的轉(zhuǎn)動(dòng)速度與釋放的脈沖的頻率呈正比。ULN2003內(nèi)部結(jié)構(gòu)圖如圖2所示。

圖2 ULN2003內(nèi)部結(jié)構(gòu)圖

ULN2003是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出等控制電路中,可直接驅(qū)動(dòng)繼電器等負(fù)載。ULN2003芯片內(nèi)部結(jié)構(gòu)及引腳如圖3所示。系統(tǒng)中的步進(jìn)電機(jī)的四相(實(shí)際工作模式為二相四拍)由0x28000006的bit0~bit3控制,bit0對(duì)應(yīng)于MOTOR_A,bit1對(duì)應(yīng)于MOTOR_B,bit2對(duì)應(yīng)于MOTOR_C,bit3對(duì)應(yīng)于MOTOR_D。通過(guò)編制脈沖分配控制步進(jìn)電機(jī)。

圖3 ULN2003芯片引腳

2.2 控制程序設(shè)計(jì)評(píng)價(jià)

系統(tǒng)在μC/OS-II平臺(tái)上,設(shè)計(jì)步進(jìn)電機(jī)的控制程序,能夠控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)和停止、電機(jī)正反轉(zhuǎn)和電機(jī)轉(zhuǎn)速。

1)步進(jìn)電機(jī)使能控制函數(shù),啟動(dòng)或停止步進(jìn)電機(jī)運(yùn)行。其參數(shù)可以為STEP_ MOTOR_ ENABLE或STEP_MOTOR_DISABLE。

2)步進(jìn)電機(jī)正反轉(zhuǎn)實(shí)現(xiàn)。系統(tǒng)中使用的步進(jìn)電機(jī)工作模式為二相四拍。采用整步模式,該模式下的步距角為1.8°,正轉(zhuǎn)相序?yàn)椋?101-1001-1010-0110-0101,則反轉(zhuǎn)相序就為:0101-0110-1010-1001-0101。

3)步進(jìn)電機(jī)轉(zhuǎn)速控制。設(shè)置步進(jìn)電機(jī)轉(zhuǎn)速,單位為每步l0ms,值越小,速度越快。

由主函數(shù)Main()建立兩個(gè)任務(wù)TaskSTEP和TaskSEG,優(yōu)先級(jí)分別為5和13。從串口打印輸出任務(wù)運(yùn)行的信息。TaskSTEP任務(wù)輸出提示信息,控制步進(jìn)電機(jī)的起停、正反轉(zhuǎn)和加減速。TaskSEG任務(wù)輸出程序運(yùn)行時(shí)的信息,同時(shí)控制數(shù)碼管。系統(tǒng)主函數(shù)Main,用來(lái)實(shí)現(xiàn)目標(biāo)板的初始化,操作系統(tǒng)的初始化,建立任務(wù)等,OSStart()函數(shù)是操作系統(tǒng)啟動(dòng)函數(shù),該函數(shù)永遠(yuǎn)不會(huì)返回,在調(diào)用OSStart()之前必須先調(diào)用OSInit()函數(shù)。高優(yōu)先級(jí)的函數(shù)TaskSTEP(),用來(lái)啟動(dòng)時(shí)鐘節(jié)拍定時(shí)器,開(kāi)始多任務(wù)調(diào)度,從串口打印輸出任務(wù)運(yùn)行的信息,初始化步進(jìn)電機(jī),開(kāi)始啟動(dòng)步進(jìn)電機(jī),根據(jù)按鍵來(lái)控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)和停止、電機(jī)正反轉(zhuǎn)和電機(jī)轉(zhuǎn)速。

3 結(jié) 論

為實(shí)現(xiàn)嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II的移植,通過(guò)修改三個(gè)和體系結(jié)構(gòu)相關(guān)的文件,使得μC/OS-II成功移植到μC/OS-II到S3C2410處理器上。在研究中,通過(guò)對(duì)ARM及S3C2410處理器、系統(tǒng)硬件模塊、系統(tǒng)硬件資源分配以及步進(jìn)電機(jī)的研究,完成硬件系統(tǒng)的設(shè)計(jì)。完成了步進(jìn)電機(jī),掃描鍵盤(pán)電路的設(shè)計(jì)。軟件部分,完成了電機(jī)模塊、鍵盤(pán)模塊、數(shù)碼管模塊功能實(shí)現(xiàn)的程序設(shè)計(jì)。這樣移植就成功了,并控制步進(jìn)電機(jī)啟停、正反轉(zhuǎn)以及加減速,完成了步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)。

猜你喜歡
堆棧處理器芯片
嵌入式軟件堆棧溢出的動(dòng)態(tài)檢測(cè)方案設(shè)計(jì)*
基于堆棧自編碼降維的武器裝備體系效能預(yù)測(cè)
芯片測(cè)試
多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
ADI推出新一代SigmaDSP處理器
呼嚕處理器
74HC164芯片的應(yīng)用
河南科技(2014年10期)2014-02-27 14:09:18
一種用于分析MCS-51目標(biāo)碼堆棧深度的方法
堆棧技術(shù)及其在程序設(shè)計(jì)中的靈活運(yùn)用
塘沽区| 陆良县| 当雄县| 南丹县| 洪泽县| 桓台县| 抚松县| 弥渡县| 新巴尔虎右旗| 文化| 吉首市| 松原市| 唐河县| 贡觉县| 孟村| 洞头县| 吉首市| 安乡县| 乐安县| 金山区| 磴口县| 香河县| 墨脱县| 安仁县| 东乌珠穆沁旗| 怀远县| 伊吾县| 新乡市| 南京市| 凭祥市| 鄂托克前旗| 裕民县| 吉水县| 阜康市| 通化县| 竹山县| 洛隆县| 金塔县| 柯坪县| 拜城县| 仁布县|