范鵬飛 崔錫奎 王祥寶 劉敬猛
(1.阜陽軸承有限公司,安徽 阜陽 236000;2.北京航空航天大學自動化科學與電氣工程學院,中國 北京100191)
數控系統是制造業的基石,是制造設備的設備。國家在《國家中長期科學和技術發展規劃綱要)》[1]中明確提出,基本實現高檔數控機床、工作母機與關鍵零部件的自主設計制造,并確定了高檔數控的發展為優先主題。RS-422是一個通用的物理通信接口規范,規定了物理接口的電氣特性,而不涉及協議。在此基礎上,用戶可以建立自己的高層通信協議[2]。該通信協議既滿足數控系統的實時性要求又大大降低開發成本[3]。本文結合阜陽軸承有限公司-北京航空航天大學聯合開發的兩軸數控車床系統,設計了一種基于RS-422總線標準的串行通信協議并討論了基于此的硬件以及軟件的設計,完成了相關的現場試驗。

圖1 數控系統框圖
隨著現代數控技術的發展,數控系統的功能越來越多,系統的構成也越來越復雜,除了運算速度不斷提高外,硬件的升級、擴展和維護都要在系統設計時考慮。圖1是數控系統的結構框圖,主要包括4部分:主板、系統鍵盤板、用戶鍵盤板和接口板。接口板連接IO和伺服電機。系統鍵盤用于G代碼編程,該矩陣式鍵盤通過并行總線與主板FPGA連接。主板包括ARM和FPGA兩塊處理器。FPGA是協處理器,負責時序、“方向+脈沖”信號、接口擴展。ARM是主處理器搭載UCOS操作系統實現G代碼編輯、編譯、界面、插補運算。該主板搭載三個異步串口,UART0、UART1和UART2。UART0接超級終端,打印系統信息。UART1和UART2擴展成RS422,分別接操作鍵盤板和接口板通過串口進行通信。串行通信的波特率是115200bps,8為數據位,1位停止位,沒有校驗位。機床的主令開關、指示燈、繼電器、電磁閥、用戶鍵盤板的手動調整開關等通過RS-422傳至ARM。這種通訊架構主要有以下三個優點:第一,用戶鍵盤和接口板從主板上分離出來,用RS422連接,便于安裝,并且兼容了不同類型的數控系統。第二,用雙RS422而不用RS485,最大限度提高帶寬,簡化應用層通信軟件的設計。第三,設計了一套完整的幀傳送協議,保證了數據快速有效傳遞。
圖2是RS-422接口電路圖[4],該系統的接口板和操作鍵盤板的信息采集是通過RS-422完成的。選擇 RS-422的理由如下:(1)RS-422的通信速率和誤碼率完全能夠達到信號傳輸的要求。(2)RS-422是工業標準的總線,可靠性高,應用廣泛,價格低廉。(3)ARM端有UART,FPGA端可通過 IO口擴展串口。(4)MAX3491可將LVTTL/CMOS的信號轉換為RS-422的差分信號。本系統用到3片MAX3491,分別接在主板的ARM上,接口板的FPGA上,和用戶鍵盤板的FPGA上。圖2中的MAX3491右側是3.3V的LVTTL/CMOS信號,接ARMS3C2410的UART管腳或者FPGA的IO口。FPGA選用 Cyclone的EP1C6Q240,對于串口115200bps的波特率,可用FPGA的通用IO口。由于RS-422采用輸入、輸出通道獨立,三態門緩沖器的控制引腳/RE接高,DE接低。MAX3491左邊的信號是差分信號。RS422_T+、RS422_T-是差分信號輸出的正和負,RS422_R+、RS422_R-是差分信號輸入的正和負。差分信號在進入電平轉化芯片MAX3491之前進行濾波和限幅處理,消除信號在傳輸過程中接收到的噪聲。L1是濾波器,消除共模干擾。D1~D4、R11、R12將信號大致限幅在電源和地之間,避免尖峰電壓損壞接口芯片。C9是壓片電容,25V/104,接在接口芯片的電源和地之間。

圖2 RS-422接口電路圖
本協議解決上位機(ARM)和下位機(FPGA)間的數據傳輸,約定了數據格式、通信的建立、故障的處理。
串行通信分為異步串行和同步串行,RS-422是基于異步串行通信設計的。異步通信的雙方沒有時鐘,通信始于發送方的邏輯‘1’到邏輯‘0’的下跳沿,一般是1位起始位,5~8位數據位,1位奇偶校驗位,1位停止位。停止位是邏輯’1’,停止后總線保持邏輯’1’狀態,直到下一次的起始位出現。這樣,一次通信的信息量很小,8位數據最多只能表示256種狀態,無法在復雜的通信系統中直接使用。于是,將要傳送的數據按照一定的格式組成幀,由協議控制幀中的數據,一個字節接一個字節地發送和接收。


圖3
圖3 (a)是本文設計的通訊協議幀結構。對主站和從站,命令和數據的定義有所不同。幀長12個字節,編號0到11,低編號字節先發、先收。幀頭0X55,幀尾0XAA,編號是10的字節是累加和SUM,SUM是CMD、Data7~Data0共9個字節的累加。幀長為12個字節的設計使得主板到接口板和操作鍵盤板所有的通信信息均可在一幀內完成,節省了通信時間,ARMS3C2410的FIFO模式中斷支持一次12字節的發送和接收。該協議不需要ID,ARM有兩個UART,點對點連接接口板和用戶鍵盤板。圖3(b)是一個字節Data0的解析,D7~D0每位控制一個輸出端口,每位輸出端口(OUT-7~OUT0)對應機床的一個繼電器或者電磁閥或者用戶鍵盤板的一個指示燈。數控機床的輸入輸出以及用戶鍵盤板上有很多這樣的數字IO,它們經過編碼后被填入圖3(a)的 Data7~Data0。
圖4是通訊建立的狀態機。幀的第1字節是CMD,共8位,支持256個命令。本數控系統用到的的常見命令:復位命令0X01,啟動命令0X02,停止命令0X03,正常數據0X04。前三個命令要有應答。通信的建立從硬件復位開始,由主站(ARM)發起,在周期任務里發送復位命令0X01給從站,從站的狀態信息依賴這個復位命令進行初始化。從站完成復位以后,發一個應答給主站,表示復位已完成。然后,主站發送啟動命令0X02,該命令發給從站,啟動從站里的一些定時模塊,為接下來的數據采集做準備。從站啟動完成后,發送應答給主站,表示啟動已完成。接下來主站發一個數據幀,表示接數準備完成,同時打開看門狗計時器(溢出時間是3秒)。每當收到從站發來的數據時看門狗計時器清零,當看門狗計時器溢出時狀態機復位,表示通訊系統故障。此時,系統進入自修復自動通信狀態。

圖4 通信建立狀態機
通信系統建立以后,主站通過看門狗監視從站的通信是否正常工作。主站收到來自從站的數據,根據自動循環或手動調整的加工要求決定是否返回應答數據。考慮到頻繁的幀應答不僅需要大量的時間,而且還會造成死鎖。本協議規定,當通信建立以后,從站每20ms定時向主站發送一幀數據,不管主站是否應答,當收到停止命令時,從站停止數據幀發送。
函數RenewOSInitUart為ARM9S3C2410的初始化代碼,解決串口初始化、串口發送中斷和接收中斷初始化問題。其中ARM的串口1接接口板,串口2接用戶鍵盤板。具體的代碼如下所示:





圖5 ARM串口接收中斷流程圖
圖5 是上位機ARMS3C2410串口接收中斷流程圖,使能了超時中斷。在正常情況下,當下位機開始向上位機發送數據的時候,ARM S3C2410連續收到12個字節的數據后,進入接收中斷。若因為通信的原因沒有接收到觸發深度設定的12個字節且三個字長的時間沒有收到任何數據,進入超時中斷。超時中斷和接收中斷共用同一個中斷源。在接收中斷的最開始,讀取接收數據長度,看是否等于觸發深度12,若不是,說明是超時中斷,清空串口緩沖區數據,丟棄數據,清零看門狗計時器,中斷返回。當接收數據等于觸發深度,說明接收的是一幀完整的幀。把串口緩沖區數據逐個讀出,送到接收數組,同時,計算累加和。接下來判斷幀頭、幀尾和累加和是否正確,若正確,將接收到的數據填充到IO的據結構里去,稱IO處理。若不正確,丟棄數據,然后返回。
圖6(a)數控系統控制箱,包括系統鍵盤、用戶鍵盤、手輪、主軸波段開關和用于界面顯示的液晶屏。圖6(b)是數控系統的主板。圖6(c)是自動加工時的操作和顯示界面。圖6(d)是加工的工件。


圖6 實驗系統
本文設計了一種RS-422的通信協議,用于解決數控系統模塊間信號通信。利用ARMS3C2410異步串行通信接口的資源,結合模塊間數據通信的需求,將中斷和FIFO幀(12字節)用于數據通信。實現了下位機每隔20ms向上位機傳送一次數據的功能。看門狗、超時中斷、出錯重發機制、幀頭幀尾和累加和校驗保證了數據通信的可靠性和穩定性。該協議應用在兩軸車床上,完成了軸承外環溝道的小批量試產。其加工樣品完全滿足工藝和誤差的要求,達到了預期的設計要求,驗證了本協議的有效性和實用性。
[1]中華人民共和國國務院.國家中長期科學和技術發展規劃綱要(2006-2020年)[Z].北京:中華人民共和國國務院,2006.
[2]陽憲惠,工業數據通信與控制網絡[M].北京:清華大學出版社,2003.
[3]謝劍,金永喬,等.高檔數控系統中的RS485串行總線接口研究與開發[J].組合機床與自動化加工技術,2010(5):22—25.
[4]李騰飛.嵌入式車床數控系統設計與研究[D].安徽工程大學,2014.