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

?

基于ARM的低速光電編碼器仿真接口設計*

2015-12-16 05:08:08鄭均輝王啟明
微處理機 2015年4期
關鍵詞:數(shù)碼管編碼器信號

鄭均輝,王啟明

(平頂山學院計算機科學與技術(shù)學院,平頂山467000)

基于ARM的低速光電編碼器仿真接口設計*

鄭均輝,王啟明

(平頂山學院計算機科學與技術(shù)學院,平頂山467000)

編碼器可以把角位移,直線位移等機械信號轉(zhuǎn)換成電信號,它主要用來偵測機械運動的速度、位置、角度、距離、計數(shù)等。以NXP的LPC2136 ARM處理器為核心,通過對光電編碼器的正交信號分析,利用UART通信技術(shù)實現(xiàn)對電機轉(zhuǎn)向及精確定位的數(shù)字化顯示,為編碼器應用在低速的自動智能控制領域提供了一個很好的解決方案。測試證實本設計對光電編碼器的計數(shù)與標準記測器的計數(shù)值在低速旋轉(zhuǎn)條件下非常準確。

編碼器;ARM處理器;信號分析;UART通信;低速智能控制;電機控制

1 引 言

在工業(yè)控制領域通常需要用正交編碼器對各種角度、速度、位移等進行精確測量[1]。目前,在一些高級ARM處理器中已經(jīng)集成了編碼器接口[2],如使用Cortex-M3內(nèi)核的STM32F系列、周立功的LM3S601/608微控制器等[3]。但是在實際控制中為了節(jié)約成本,需要使用價格比較低的微控制器,而這些卻沒有編碼器接口,因此就需要通過普通的控制器來仿真編碼器接口以滿足應用需求。

在此主要研究NXP(恩智普)公司的LPC2136處理器在低速轉(zhuǎn)動中模擬光電編碼器接口顯示編碼器正反轉(zhuǎn),并且對其轉(zhuǎn)動定位進行標注,記錄轉(zhuǎn)動圈數(shù)。重點介紹如何對編碼器進行精確控制,并對獲得的數(shù)據(jù)進行分析處理,得到準確直觀的數(shù)字化顯示結(jié)果,把數(shù)據(jù)通過GPIO模擬SPI方式發(fā)送到七段碼顯示,同時通過UART口把數(shù)據(jù)送到PC在串口助手顯示。這種技術(shù)可應用在工業(yè)控制精度要求相對較高的地方,比如發(fā)動機的轉(zhuǎn)速測量控制、應用在輪胎平衡機上準確定位輪胎的不平衡點、煤礦架空乘人裝置準確定位出事地點等自動化控制應用中。

2 光電編碼器

編碼器(encoder)作為傳感產(chǎn)品的一大重要分支,能將信號或數(shù)據(jù)編制并轉(zhuǎn)換為可用以通信、傳輸和存儲之形式的設備[4]。編碼器最重要的應用就是定位[5],目前其已經(jīng)越來越廣泛地被應用于各種工控場合。如機床工具、航空航天、鐵道交通、新能源及港口機械等行業(yè),都在使用著大量的編碼器產(chǎn)品[6]。

光電編碼器,是一種通過光電轉(zhuǎn)換將輸出軸上的機械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器,這是目前應用最多的傳感器,光電編碼器是由光柵盤和光電檢測裝置組成[7]。光柵盤是在一定直徑的圓板上等分地開通若干個長方形孔[8]。由于光電碼盤與電動機同軸,電動機旋轉(zhuǎn)時,光柵盤與電動機同速旋轉(zhuǎn),經(jīng)發(fā)光二極管等電子元件組成的檢測裝置檢測輸出若干脈沖信號。光電編碼器的正反轉(zhuǎn)判斷信號如圖1所示。A、B兩相信號是相差1/4周期,如果A提前B1/4周期則表明順時針旋轉(zhuǎn),若B提前A1/4周期則表明逆時針旋轉(zhuǎn)。

圖1 光電編碼器信號示意圖

3 系統(tǒng)設計與實現(xiàn)

3.1 硬件系統(tǒng)接口設計

采用型號為JVH-10BM-E5的光電編碼器,有A、B、Z三條信號線,在它內(nèi)部光柵盤共有100個柵格,即每旋轉(zhuǎn)3.6°就能發(fā)出一個沿變信號。硬件電路中使用了LPC2136中的P0.16、P0.17、P0.18引腳分別連接光電編碼器的信號線A、B、Z。使用其GPIO口P0.2、P0.3、P0.4來模擬SPI總線對數(shù)碼管的數(shù)據(jù)傳輸顯示,各個數(shù)碼管之間共陰極顯示,通過P0.6-P0.13控制數(shù)碼管段位,用74HC595模擬SPI來選通控制哪一個顯示。硬件系統(tǒng)原理如圖2所示。

圖2 硬件系統(tǒng)原理框架

3.2 硬件系統(tǒng)原理

LPC2136微控制器是基于一個支持實時仿真和嵌入式跟蹤的16/32位ARM7TDMI-S CPU,帶有256kB嵌入式高速Flash存儲器。其內(nèi)部具有2個32位可編程定時/計數(shù)器,均具有4路捕獲、4路比較匹配并輸出電路。定時器對外設時鐘(Pclk)周期進行計數(shù),可選擇產(chǎn)生中斷或根據(jù)4個匹配寄存器的設定,在到達指定的定時值時執(zhí)行其他動作(輸出高/底電平、反轉(zhuǎn)或者無動作)。4個捕獲輸入,用于在輸入信號發(fā)生跳變時捕獲定時器值并產(chǎn)生中斷。

設計使用12MHz外部晶振,通過LPC2136定時器1的捕獲功能來獲取光電編碼器信號A、Z的信號,通過配置P0.10的CAP1.0捕獲A信號的下降沿從而產(chǎn)生中斷。光電編碼器在正向旋轉(zhuǎn)時,信號A的波形比信號B的波形提前90°。通過對A、B信號序列研究發(fā)現(xiàn),當在信號A下降沿到來那一刻,如果信號B是高電平,則能判斷光電編碼器是在順時針旋轉(zhuǎn),反之,則能判斷光電編碼器是逆時針旋轉(zhuǎn)。因此,把LPC2136的P0.17設置成GPIO的輸入模式連接光電編碼器的信號B端,通過檢測信號A下降沿產(chǎn)生中斷的那一刻信號B的高低電平就能判斷出編碼器的正反轉(zhuǎn),通過4個數(shù)碼管與上位機同步顯示。

數(shù)碼管顯示時使用SPI接口的串行時鐘線(SCK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI等三條線來發(fā)送數(shù)據(jù)給74HC595使其不斷刷新,刷新頻率小于24Hz的時候會使人感覺發(fā)光閃爍,因此,刷新每個數(shù)碼管的時間間隔不能大于10ms,刷新頻率越高顯示亮度越大。

UART是一種通用串行數(shù)據(jù)總線,一般使用三條線,GND、RxD和TxD用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在本次嵌入式設計中,UART0用來與PC進行通信,波特率設為9600bps,8個數(shù)據(jù)位,1個停止位。UART首先將接收到的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸。消息幀從一個低位起始位開始,后面是7個或8個數(shù)據(jù)位,一個可用的奇偶位和一個或幾個高位停止位。接收器發(fā)現(xiàn)開始位時它就知道數(shù)據(jù)準備發(fā)送,并嘗試與發(fā)送器時鐘頻率同步。如果選擇了奇偶,UART就在數(shù)據(jù)位后面加上奇偶位。奇偶位可用來幫助錯誤校驗。在接收過程中,UART從消息幀中去掉起始位和結(jié)束位,對進來的字節(jié)進行奇偶校驗,并將數(shù)據(jù)字節(jié)從串行轉(zhuǎn)換成并行。UART也產(chǎn)生額外的信號來指示發(fā)送和接收的狀態(tài)。

3.3 軟件系統(tǒng)設計

軟件設計流程如圖3所示。

圖3 MCU主流程

設計使用ADS1.2開發(fā)環(huán)境,EasyJtag在線調(diào)試下載工具,使用串口助手來接收LPC2136發(fā)送過來的編碼器數(shù)據(jù)。首先對LPC2136進行初始化,配置IO口P0.17、P0.18引腳為數(shù)據(jù)輸入,配置UART0波特率為9600bps,采用查詢方式來獲取接收或發(fā)送完成時狀態(tài)。定時器1的P0.10為下降沿捕獲端口。模擬SPI時定義P0.2為CLK時鐘信號,P0.3為DATA數(shù)據(jù)信號,發(fā)送一字節(jié)數(shù)據(jù)循環(huán)8次,P0.4 LATCH鎖存信號,等接收到8位數(shù)據(jù)后通過鎖存信號不斷復位或置位進行位接收字節(jié)接收發(fā)送,通過不斷掃描來點亮數(shù)碼管。在使用IO模擬SPI時序發(fā)送數(shù)據(jù)時需要一定的時鐘周期來延時,由于數(shù)碼管動態(tài)顯示需要不斷刷新,故延時函數(shù)需調(diào)用點亮數(shù)碼管的語句,否則,多處使用延時函數(shù)數(shù)碼管就會產(chǎn)生閃爍。

程序初始化之后開始在捕獲中斷程序中設置變量flag_int=0xaa,主函數(shù)不斷循環(huán),當判斷到flag_ int為0xaa后,來判斷P0.10的電平即正交編碼器B信號的輸出電平,如果為高,則編碼器順時針旋轉(zhuǎn),編碼器位置計數(shù)(程序中使用變量count)值加1;如果P0.10的電平為低,則編碼器逆時針旋轉(zhuǎn),編碼器位置計數(shù)值減1。由于使用的光電編碼器旋轉(zhuǎn)一周計數(shù)值為100,故在count=100時,需對count清零,同時對光電編碼器的旋轉(zhuǎn)圈數(shù)加1。

正交編碼器低速仿真接口設計的主要算法如下。

4 結(jié)束語

詳細介紹了編碼器的工作原理、LPC2136 MCU的部分外設功能以及在低速狀態(tài)下如何通過普通單片機來模擬正交編碼器接口的硬件設計與軟件設計流程。通過單片機來模擬正交編碼器的設計為編碼器大范圍地應用在低速自動智能控制領域提供了一個很好的解決方案。在測試過程中,把編碼器信號同時輸入到創(chuàng)思杰ZN96系列智能記測器進行對比,證實本設計對光電編碼器的計數(shù)與標準記測器計數(shù)值在低速旋轉(zhuǎn)條件下非常準確。由于系統(tǒng)沒有對實際應用中的各種機械干擾信號進行濾波,故在實際應用中必定受機械振動干擾,產(chǎn)生較多的毛刺干擾信號可能使正交編碼器仿真接口出現(xiàn)部分誤差,因此就需要在工業(yè)應用中進一步增加硬件濾波或者軟件濾波消除誤差。同時,如何在濾波成本與濾波性能之間取得較好的性價比,也需要進一步探索研究。

[1] 賀玲玲.一種用旋轉(zhuǎn)電子編碼器檢測絕對角度位置的方法與實現(xiàn)[J].重慶工商大學學報(自然科學版),2009,26(5):472-476.He Lingling.Method of electronic rotary encoder detects the absolute angular position and implementation[J].Chongqing Technology and Business University(Natural Science),2009,26(5):472-476.

[2] 王明順,沈謀全.虛擬編碼器設計與轉(zhuǎn)速測量[J].儀器儀表學報,2008,29(6):1300-1305. Wang Mingshun,Shen Mouquan.Virtual encoder design and speedmeasurement[J].JournalofScientific Instrument,2008,29(6):1300-1305.

[3] 蔡尚峰.自動控制理論[M].北京:機械工業(yè)出版社,1980.Cai Shangfeng.Theory of automatic control[M].Beijing:Mechanical Industry Press,1980.

[4] 權(quán)超健,劉獻禮.光電編碼器輸出信號自動調(diào)試技術(shù)研究[J].測控技術(shù),2014,33(3):38-42.Quan Chaojian,Liu Xianli.Optical encoder output signal automatic debugging technology research[J].measurement and control technology,2014,33(3):38-42.

[5] 王裕?。g碼器編碼器數(shù)字選擇器電子開關電源分冊[M].北京:科學技術(shù)文獻出版社,2006.Wang Yuchen.Decoder encoder digital electronic switching power supply selector[M].Beijing:Science Press,2006.

[6] 王淑紅.測控電路與器件[M].北京:清華大學出版社,2006.Wang Shuhong.Devices of measurement and control circuits[M].Beijing:Tsinghua University Press,2006.

[7] 周化仁,潘學盈,王宗信.檢測與轉(zhuǎn)換技術(shù)[M].北京:中國礦業(yè)大學出版社,1989.Zhou Huaren,Pan Xueying,Wang zongxin.Detection and conversiontechnology[M].Beijing:ChinaMining University Press,1989.

[8] 謝劍英.微型計算機控制技術(shù)[M].北京:國防工業(yè)出版社,1985.Xie Jianying.Microcomputer control technology[M].Beijing:National Defense Industry Press,1985.

Design on Low Speed Photoelectric Encoder Simulation Interface Base on ARM

Zheng Junhui,Wang Qiming
(College of Computer Science and Technology,Pingdingshan University,Pingdingshan 467002,China)

Angular displacement,linear displacement and other mechanical signals can be translated into electrical signals by encoder which is mainly used to detect the speed of mechanical motion,position,angle,distance,count,etc.The paper analyzes the quadrature signal of optical encoder,using LPC2136 ARM MCU of NXP semiconductors as the core and UART communication technology to realize the motor steering and precise positioning digital display,and provides a good solution for the encoder in the field of low-speed automatic intelligent control.The test results show that the count values of the photoelectric encoder counts and standard chronograph in the conditions of low-speed rotation are extremely exact.

Encoder;ARM processor;Signal analysis;UART communication;Low-speed intelligent control;Motor control

10.3969/j.issn.1002-2279.2015.04.022

TP391.8

A

1002-2279(2015)04-0085-04

河南省科技攻關基金(122102210258)

鄭均輝(1981-),男,四川省敘永縣人,講師,碩士研究生,主研方向:單片機開發(fā),人工智能等。

2015-01-04

猜你喜歡
數(shù)碼管編碼器信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
Arduino編程
電腦報(2019年2期)2019-09-10 07:22:44
MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
科技風(2019年13期)2019-06-11 13:38:30
單片機控制的四位數(shù)碼管動態(tài)顯示編程
基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設計與實現(xiàn)
基于FPGA的同步機軸角編碼器
基于FPGA的多功能信號發(fā)生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于PRBS檢測的8B/IOB編碼器設計
基于LabVIEW的力加載信號采集與PID控制
华蓥市| 清新县| 博客| 和顺县| 库车县| 阳春市| 清徐县| 蕉岭县| 宁河县| 抚州市| 勐海县| 英超| 方正县| 大悟县| 昭平县| 普兰县| 拉孜县| 布尔津县| 元朗区| 武乡县| 沙湾县| 甘肃省| 当雄县| 乐平市| 临夏县| 云浮市| 岢岚县| 淮阳县| 黄大仙区| 永城市| 新源县| 剑阁县| 安新县| 灵璧县| 合川市| 辽阳县| 祁门县| 桂林市| 宾川县| 治多县| 万源市|