如何設(shè)計(jì)基于ARM的旋轉(zhuǎn)編碼器采集模塊?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
隨著工業(yè)生產(chǎn)自動(dòng)化水平的提高,各種傳感器的應(yīng)用也越來(lái)越多。旋轉(zhuǎn)編碼器作為速度和位移反饋的傳感器,主要應(yīng)用于數(shù)控機(jī)床、高精度的閉環(huán)調(diào)速系統(tǒng)、伺服電動(dòng)機(jī)、異步電動(dòng)機(jī)、步進(jìn)電動(dòng)機(jī)、電梯曳引機(jī)、電梯門(mén)機(jī)乃至機(jī)械軸等需要對(duì)運(yùn)動(dòng)速度和位移信息反饋的自動(dòng)化控制場(chǎng)合,以保證機(jī)械的高精度穩(wěn)定運(yùn)轉(zhuǎn),進(jìn)而提高生產(chǎn)效率和保障安全運(yùn)營(yíng)。
本文針對(duì)旋轉(zhuǎn)編碼器在工業(yè)現(xiàn)場(chǎng)中的應(yīng)用,基于LPCI768硬件平臺(tái),設(shè)計(jì)出一種旋轉(zhuǎn)編碼器采集模塊,該模塊內(nèi)部具有高精度分析、整形、解碼電路,可同時(shí)對(duì)2路編碼器輸入信號(hào)進(jìn)行分析、解碼。經(jīng)過(guò)處理的旋轉(zhuǎn)信號(hào)通過(guò)高性能處理器進(jìn)行采集及數(shù)字濾波。旋轉(zhuǎn)編碼器同時(shí)還對(duì)2路編碼器信號(hào)進(jìn)行角速度計(jì)算,最終模塊通過(guò)CAN總線將采集到的旋轉(zhuǎn)位置值以及角速度值發(fā)送到DPU(分散處理單元),以供工業(yè)現(xiàn)場(chǎng)使用。
1 旋轉(zhuǎn)編碼器
旋轉(zhuǎn)編碼器是一種測(cè)量轉(zhuǎn)動(dòng)部件運(yùn)動(dòng)情況的傳感器,是將旋轉(zhuǎn)的機(jī)械位移量轉(zhuǎn)換為電氣信號(hào),對(duì)該信號(hào)進(jìn)行處理后檢測(cè)位置、速度等的傳感器。所謂編碼,其實(shí)就是將旋轉(zhuǎn)角度的信息轉(zhuǎn)換為單片機(jī)可讀的電信號(hào)的過(guò)程。旋轉(zhuǎn)編碼器根據(jù)工作原理可以分為接觸式、光電式和電磁式三種}根據(jù)輸出信號(hào)的形式又可以分為增量式和絕對(duì)值兩種,其中增量式編碼器是工業(yè)中最常用的編碼器。
增量編碼器包括碼盤(pán)、發(fā)光元件、接收元件和信號(hào)處理部分。當(dāng)軸旋轉(zhuǎn)時(shí)帶動(dòng)碼盤(pán)旋轉(zhuǎn),這樣刻線處透光,問(wèn)隔處不透光,透過(guò)的光被接收元件接收并輸入到信號(hào)處理部分,產(chǎn)生脈沖信號(hào)輸出,輸出信號(hào)一般包括A、B兩相(相位差90°),有些編碼器每轉(zhuǎn)一圈還會(huì)輸出一個(gè)零位脈沖Z,作為機(jī)械參考零位。當(dāng)主軸以順時(shí)針?lè)较蛐D(zhuǎn)時(shí),A通道信號(hào)位于B通道之前;當(dāng)主軸逆時(shí)針旋轉(zhuǎn)時(shí),A通道信號(hào)則位于 B通道之后,從而可以由此判斷主軸是正轉(zhuǎn)還是反轉(zhuǎn)。
2 CAN總線
CAN總線(Controller Area Network),即控制器局域網(wǎng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。CAN總線最初是德國(guó)Bosch公司于1983年為汽車(chē)應(yīng)用而開(kāi)發(fā)的,它是一種能有效支持分布式控制和實(shí)時(shí)控制的串行通訊網(wǎng)絡(luò),屬于現(xiàn)場(chǎng)總線(Field Bus)的范疇n]。隨著CAN總線的不斷完善和發(fā)展,它目前已被國(guó)際化標(biāo)準(zhǔn)組織采納為國(guó)際標(biāo)準(zhǔn)。
CAN總線是一種多主方式的串行通訊總線,基本設(shè)計(jì)規(guī)范要求有較高的位速率和高抗干擾性,而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤。信號(hào)傳輸距離達(dá)到10 km時(shí),仍然可提供高達(dá)5kb/s的數(shù)據(jù)傳輸速率。CAN協(xié)議經(jīng)lSO標(biāo)準(zhǔn)化后有IS011898標(biāo)準(zhǔn)和IS011519標(biāo)準(zhǔn)兩種。它們兩者的區(qū)別在于對(duì)物理層的定義不同。ISOll898是通信速度為125 kb/s---1 Mb/s的CAN高速通信標(biāo)準(zhǔn),而ISOll519是通信速度為125 kb/s以下的CAN低速通信標(biāo)準(zhǔn)。
3 硬件設(shè)計(jì)
根據(jù)系統(tǒng)功能需求,本文選用NXP公司生產(chǎn)的LPCI768處理器,該處理器是一款基于ARMCortex--M3內(nèi)核的32位處理器,它具有3流水線和哈佛結(jié)構(gòu),帶獨(dú)立的本地指令和數(shù)據(jù)總線以及用于外設(shè)的稍微低性能的第三條總線,同時(shí)還包含一個(gè)支持隨機(jī)跣轉(zhuǎn)的內(nèi)部預(yù)取指單元,工作頻率可達(dá)100MHz。LPCI768處理器的外設(shè)組件包含高達(dá)512 kB的Flash存儲(chǔ)器、64 kB的數(shù)據(jù)存儲(chǔ)器、4個(gè)通用定時(shí)器、8通道的12位ADC、10位DAC、電機(jī)控制PWM、4個(gè)UART、2條CAN通道、帶獨(dú)立電池供電的超低功耗 RTC和多達(dá)70個(gè)的通用I/0管腳.圖1為旋轉(zhuǎn)編碼器采集模塊總體框圖。
3.1 CPU部分
由芯片手冊(cè)可知,LPCI768可以選擇內(nèi)部RC振蕩器或者主振蕩器作為系統(tǒng)時(shí)鐘源,而由于內(nèi)部RC振蕩器精度無(wú)法滿足CAN總線通訊的要求,而主振蕩器可以工作的頻率范圍為1 MHz~25 MHz,故選取12 MHz的晶振加上22 pF的電容構(gòu)成Pierce振蕩器,作為主振蕩器的時(shí)鐘源。由于本系統(tǒng)未使用芯片的A/D模塊,故VDDA可以跟VDD一起連接到3.3V,每對(duì)VDD、 GND引腳間需連接一個(gè)0.1uF的去耦電容。同時(shí)JTAG及通訊引腳均通過(guò)10k的上拉電阻連接到VDD,以提高信號(hào)傳輸?shù)姆€(wěn)定性。
3.2 旋轉(zhuǎn)編碼器采集部分
旋轉(zhuǎn)編碼器應(yīng)用于角度定位或測(cè)量時(shí),由于旋轉(zhuǎn)軸的晃動(dòng)可能引起編碼器輸出波形的抖動(dòng),從而引發(fā)誤計(jì)數(shù)現(xiàn)象,在這種情況下就不能對(duì)波形進(jìn)行正確計(jì)數(shù),本系統(tǒng)通過(guò)一個(gè)單穩(wěn)態(tài)觸發(fā)器來(lái)消除旋轉(zhuǎn)編碼器輸出脈沖信號(hào)的抖動(dòng)。圖2為旋轉(zhuǎn)編碼器采集電路中的一路。
分析電路可知,當(dāng)旋轉(zhuǎn)編碼器正轉(zhuǎn)時(shí),F(xiàn)1輸出脈沖序列,當(dāng)旋轉(zhuǎn)編碼器反轉(zhuǎn)時(shí),R1輸出脈沖序列閉,電路仿真波形見(jiàn)圖3。
3.3 CAN總線通訊部分
LPC1768處理器支持CAN 2.0B規(guī)范,兼容IS011898-1標(biāo)準(zhǔn),基于此,本文選取飛利浦半導(dǎo)體公司生產(chǎn)的PCA82C250芯片作為CAN總線收發(fā)器,通訊匹配電阻選取120 ,i1,CAN收發(fā)器電路見(jiàn)圖4。
3.4 電源部分
LPC1768工作電壓為3. 3 V,而CAN收發(fā)器及旋轉(zhuǎn)編碼器采集電路部分電壓為5 V,所以先使用MC33063將輸人電壓降到5V,供相關(guān)電路使用,然后再通過(guò)LM1117-3.3V將5V電壓降到3.3V,作為處理器工作電壓。電源電路見(jiàn)圖5。
4 軟件設(shè)計(jì)
系統(tǒng)采用RealView MDK-ARM V4.10為開(kāi)發(fā)平臺(tái),以C語(yǔ)言為主要開(kāi)發(fā)語(yǔ)言,程序主要分三個(gè)部分:旋轉(zhuǎn)編碼器采集部分采用中斷方式,通過(guò)LPC1768的定時(shí)捕獲單元來(lái)完成對(duì)輸人脈沖信號(hào)的計(jì)數(shù)工作;CAN通訊部分也采用中斷方式監(jiān)聽(tīng)來(lái)自DPU或者其他控制主機(jī)傳來(lái)的命令,然后執(zhí)行相應(yīng)的數(shù)據(jù)傳送任務(wù);而主程序則通過(guò)一定的時(shí)間調(diào)度算法,完成旋轉(zhuǎn)編碼器轉(zhuǎn)動(dòng)方向的判斷、角速度的計(jì)算以及設(shè)置相應(yīng)的指示燈狀態(tài)、處理CAN通訊過(guò)程中出現(xiàn)的異常狀況、喂狗等操作。主程序流程圖見(jiàn)圖6。[!--empirenews.page--]
5 結(jié)論
本文設(shè)計(jì)完成的旋轉(zhuǎn)編碼器采集模塊,適用于各類(lèi)工業(yè)控制現(xiàn)場(chǎng),具有較廣的應(yīng)用前景。經(jīng)實(shí)驗(yàn)室初步驗(yàn)證并應(yīng)用于某工業(yè)現(xiàn)場(chǎng)測(cè)試,該模塊對(duì)旋轉(zhuǎn)編碼器輸人信號(hào)處理結(jié)果滿足用戶(hù)要求,并且能夠可靠地與現(xiàn)場(chǎng)控制系統(tǒng)進(jìn)行通訊,工作性能穩(wěn)定,具有很強(qiáng)的抗千擾能力和很高的安全性。