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