王 鵬,賀健琪,宋 敏
(西安航空學院 陜西 西安 710077)
開放式數控系統已經成為數控系統發展的趨勢,以NC嵌入PC的開放式數控系統以其經濟性和實用性已被廣泛應用[1]。在通用的PC機的擴展插槽中加入運動控制卡,由PC機發出控制指令,運動控制卡根據接收指令完成各種控制功能。運動控制和邏輯控制由運動控制卡完成,因此運動控制卡的設計已經成為NC系統性能實現的關鍵技術[2]。目前運動控制卡多采用專用運動控制芯片構成,例如固高運動控制卡,但是專用控制芯片擴展能力差,系統升級困難,難以應用于開放式數控系統;也有采用DSP+CPLD/FPGA為核心構成,雖然集合了DSP的強大數據處理能力和FPGA的靈活性與可靠性等優點,但DSP硬件成本較高,內部運動控制算法修改復雜。
文中選用單片機+FPGA為核心的控制方案,以此方案設計了一種可以實現在線接觸加工過程中六軸插補的運動控制卡。刀具側刃在完成曲面加工時,刀具端面還可以完成曲線插補,提高了曲面加工效率[3]。
核心部分采用由單片機+FPGA組成,利用單片機的控制功能和FPGA的快速計算能力組成運動控制系統的核心硬件結構,系統硬件總體結構如圖1所示。

圖1 運動控制卡總體結構圖Fig.1 Schematic structure of the motion control card
運動控制卡包括與PC連接的ISA總線、總線驅動、數據鎖存及譯碼電路模塊,雙端口RAM模塊,電源轉換模塊以及FPGA芯片的配置模塊。
在線接觸加工運動控制系統中上位機和運動控制板卡通信時,上位機把數控代碼傳送給雙端口RAM,單片機再從雙端口RAM里讀取數控代碼并將其發送到FPGA內部進行插補運算。
1)ISA總線模塊
由于ISA總線通信協議簡單,接口電路易于實現,所以選擇8位ISA數據總線來實現上位機與控制卡的數據傳輸[4]。
2)總線驅動模塊
采用了74LS245雙向總線驅動芯片,作為數據線的信號增強和驅動器件;用74LS244為單向總線驅動芯片,主要用來驅動ISA總線的地址線和控制總線信號,提高其扇出能力(帶負載能力);采用專用譯碼技術及芯片,以一片可編程邏輯器件GAL16V8為核心完成I/O端口譯碼功能。電路如圖2所示。

圖2 總線驅動、數據鎖存及譯碼電路Fig.2 Bus Driver,data latching and decoder circuit
3)數據鎖存
該系統屬于實時系統,需要高速可靠的數據傳輸,采用雙端口RAM作為數據交換的中介,可以滿足系統要求。IDT公司的高速2K×8bits的雙端口靜態RAM (IDT7132),該芯片具有BUSY邏輯,可有效的防止兩端訪問同一地址產生的競爭風險[5]。
2K字的雙端口RAM(范圍0x0000~0x03FF)被分配為如下幾個區域,基地址選擇如下述,具體分配如下:
0x000~0x1FF分配為信息數據緩沖區,存放上位機與單片機交換的信息數據;
0x200~0x22F分配為信息標志緩沖區,存放上位機與單片機交換的信息標識,信息標識的內容包括加工狀態字、錯誤標志字等;
0x230~0x33F分配為信息數據緩沖區,存放單片機返回給上位機的信息數據;
0x340~0x34F保留;
0x350~0x36F分配為命令緩沖區,存放單片機與上位機交換的命令和狀態;
0x370~0x3FF分別被用來存放上位機和單片機中斷。
4)單片機模塊
單片機主要作用是接收從上位機傳送下來的數控代碼,把數控代碼變成相應的指令,傳送給FPGA,控制FPGA工作,同時,對于從FPGA傳送過來的加工信息,及時地傳送給上位機。單片機模塊如圖3所示。
1)FPGA總體功能設計
FPGA主要是進行直線插補,圓弧插補和復合插補等復雜運算,輸出脈沖和方向信號,設計選用Altera公司的低成本Cyclone系列的第二代產品Cyclonell系列芯片中的EP2C8Q208芯片來實現這些功能,首先EP2C8Q208中含有 4,608至68,416個邏輯單元和18個18*18的乘法器,滿足復合插補的復雜運算的要求;第二因為連續插補一次要存儲很多條指令,而EP2C8Q208中含有36個M4KRAM塊,能滿足存儲這些數據的要求;第三由于跟單片機的相連的數據線8根,地址線10根,控制總線5根,還有6軸(或擴展為更多軸)的輸出信號12根,還有其他的存儲,控制等連線,對I/O的管腳總數要求較多,而EP2C8Q208有208個管腳,可以滿足要求[6]。在本設計中FPGA總體結構如圖4所示。

圖3 單片機模塊電路圖Fig.3 The circuit diagram of SCM

圖4 FPGA內部結構設計框圖Fig.4 The design of internal structure about FPGA
2)FPGA外圍電路設計
本設計中采用的EP2C8Q208C7是SRAM工藝的FPGA,在試驗階段需不斷對設計進行修改和調整,以逐步完善設計功能,在此階段采用JTAG方式直接將SOF文件下載到器件中,這種方式在每次上電時需要重新下載,因此在設計最終完成后,使用配置器件EPCS4來保存配置信息,即采用主動串行方式。配置電路如圖5所示。
每軸設計一個位置計數器 ,用來計正/負方向輸出脈沖數,當運動控制卡向外輸出一個正向脈沖時,計數器值加1;當運動控制卡向外輸出一個負向脈沖時,計數器值減1。這樣可以如實的反應出實際位置。

圖5 FPGA芯片配置電路圖Fig. 5 The configuration of circuit diagram about FPGA
全數控數控系統在速度處理上是通過將軟件程序給出的速度值(單位:)算出在每個插補周期上實際應發脈沖的個數。數控系統中每發出一個脈沖,電機就轉過一定的角度,從而帶動機床坐標向前或向后移動一個脈沖所對應的距離(稱之為脈沖當量,這里用step表示,單位:μm/P)。通過全軟件數控系統速度計算模塊計算實際每毫秒應發的脈沖個數是:

V1:每毫秒鐘實際發出的脈沖個數。
所以根據所需要的時鐘脈沖,用VHDL語言編寫可預置的計數器程序,就可以達到速度控制的目的。仿真波形如圖6所示。

圖6 編譯仿真波形圖Fig.6 Compile the waveform simulation
文中采用模塊化的設計思想,設計了一種基于單片機+FPGA的運動控制卡。單片機作為控制卡的核心處理器,時序控制能力極強,而且設計方便快捷,再結合FPGA的集成度高,可靠性好,大大提高了控制系統的實時性30%和可靠性,并縮小了控制卡的體積。同時FPGA具有在系統可重構的特性,保證了運動控制系統具有良好的開放性,也方便了系統的設計和調試。
[1]李剛,楊繼東.基于PC的開放式數控系統的開發[J].機床與液壓,2006(4):82-83.LI Gang,YANG Ji-dong.Development of PC-based open CNC system[J].Machine Tool&Hydraulics,2006(4):82-83.
[2]康健,陶濤,梅雪松.基于數字信號處理器的多軸運動控制器設計[J].西安交通大學學報,2003,5(5):495-498.KANG Jian,TAO Tao,MEI Xue-song.Multi-axis motion controller digital signal processor-based design[J].Xi’an Jiaotong University,2003,5(5):495-498.
[3]WANG Kun-qi,WANG Run-xiao,YU Bing-gao,et al.Research on a novel approach to multi-axis line contact milling[C].International Technology And Innovation Conference,2006(11):1494-1498.
[4]許興存,曾琦琳.微型計算機接口技術[M].北京:電子工業出版社,2003.
[5]劉琨,孫春亮.單片機C語言入門[M].北京:人民郵電出版社,2008.
[6]楊恒.FPGA/VHDL快速工程實踐入門與提高[M].北京:北京航空航天大學出版社,2003.