一種基于MCS51的微型計(jì)算機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第1頁(yè)
一種基于MCS51的微型計(jì)算機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第2頁(yè)
一種基于MCS51的微型計(jì)算機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第3頁(yè)
一種基于MCS51的微型計(jì)算機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第4頁(yè)
一種基于MCS51的微型計(jì)算機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯一種基于MCS51的微型計(jì)算機(jī)數(shù)控系統(tǒng)設(shè)計(jì)-設(shè)計(jì)應(yīng)用摘要:本文開發(fā)出一套小型計(jì)算機(jī)數(shù)控系統(tǒng)。在硬件上,由上位機(jī)和下位機(jī)兩部分構(gòu)成。上位機(jī)采用PC機(jī)或工控機(jī),主要實(shí)現(xiàn)與用戶交互.,完成數(shù)據(jù)處理。下位機(jī)采用MCS-51單片機(jī)系統(tǒng),主要實(shí)現(xiàn)通訊及強(qiáng)實(shí)時(shí)信號(hào)的處理。下位機(jī)控制軟件使用了嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II進(jìn)行開放式數(shù)控系統(tǒng)的開發(fā)。軟件設(shè)計(jì)部分,上位機(jī)采用VisualBasic為開發(fā)工具,下位機(jī)采用C51、51匯編。

1引言

隨著科技的進(jìn)步,數(shù)字控制技術(shù)、數(shù)控系統(tǒng)得到飛速發(fā)展。機(jī)床的計(jì)算機(jī)數(shù)控系統(tǒng)就是這些機(jī)電一體化技術(shù)代表性的系統(tǒng)。計(jì)算機(jī)數(shù)控系統(tǒng)是由計(jì)算機(jī)承擔(dān)數(shù)控中的命令發(fā)生器與控制器的數(shù)控系統(tǒng)。計(jì)算機(jī)接收的位置運(yùn)動(dòng)的指令,將其生成各坐標(biāo)軸的位置命令并實(shí)時(shí)輸出給各坐標(biāo)軸的控制器,控制器按控制策略控制各軸伺服系統(tǒng),使驅(qū)動(dòng)器驅(qū)動(dòng)執(zhí)行機(jī)構(gòu),帶動(dòng)機(jī)器的各坐標(biāo)軸按給定命令運(yùn)動(dòng)。

2微型計(jì)算機(jī)數(shù)控系統(tǒng)總體介紹

微型數(shù)控(CNC)系統(tǒng)的硬件分成了兩大部分,PC機(jī)部分和一塊用MCS-51單片機(jī)開發(fā)的硬件電路板,這兩部分是使用串行口RS-232連接起來(lái)的。(本文下面提到的上位機(jī)、下位機(jī)分別指PC機(jī)、單片機(jī)系統(tǒng))上位機(jī)上的軟件負(fù)責(zé)實(shí)現(xiàn)本系統(tǒng)的用戶操作界面、零件加工程序的輸入、譯碼、速度計(jì)算等功能,形成一組供下位機(jī)插補(bǔ)計(jì)算用的數(shù)據(jù)信息。下位機(jī)除了處理一些實(shí)時(shí)性強(qiáng)的機(jī)床信號(hào)外,主要任務(wù)就是根據(jù)上位機(jī)指令執(zhí)行機(jī)床控制和插補(bǔ)運(yùn)算,輸出機(jī)床的控制信號(hào)。微型數(shù)控系統(tǒng)的簡(jiǎn)單結(jié)構(gòu)如圖1。

3上位機(jī)軟件設(shè)計(jì)

3.1上位機(jī)軟件總體設(shè)計(jì)框圖

上位機(jī)軟件的開發(fā)是使用運(yùn)行在Windows操作系統(tǒng)下的VisualBasic工具完成的,選用VisualBasic是因?yàn)樗暮?jiǎn)單易用,而且對(duì)于本系統(tǒng)的開發(fā)具有足夠強(qiáng)大的功能。上位機(jī)軟件的結(jié)構(gòu)如圖2。

從圖2中可以清楚地看出上位機(jī)軟件的基本功能。首先,上位機(jī)軟件提供了一個(gè)零件加工程序的編輯窗口,按照系統(tǒng)預(yù)先設(shè)定的語(yǔ)法編寫零件加工程序,然后編譯,如果沒有錯(cuò)誤提示的話,編譯的程序就可以送到下位機(jī)開始加工了;如果程序中有語(yǔ)法錯(cuò)誤,則系統(tǒng)會(huì)給出提示,幫助修改。其次,上位機(jī)模擬機(jī)床控制面板的主要功能按鍵,通過鼠標(biāo)點(diǎn)擊這些按鍵完成相應(yīng)的機(jī)床控制,如機(jī)床的啟動(dòng)、停止,主軸X、Y方向的位置調(diào)整等等。另外,上位機(jī)接收并顯示來(lái)自下位機(jī)的信息。

3.2譯碼

譯碼的功能是將輸入的零件加工程序翻譯成本系統(tǒng)能識(shí)別的信息。不同的系統(tǒng)有不同的數(shù)據(jù)格式。一般用戶輸入的數(shù)控加工程序采用ISO標(biāo)準(zhǔn)碼編制,譯碼就是把用戶標(biāo)準(zhǔn)的數(shù)控加工程序轉(zhuǎn)換為本系統(tǒng)能識(shí)別的數(shù)據(jù)格式。

零件加工程序輸入之后,點(diǎn)擊“Compile”按鈕將開始進(jìn)入譯碼模塊。譯碼模塊主要由兩個(gè)嵌套的循環(huán)來(lái)實(shí)現(xiàn),外循環(huán)針對(duì)零件加工程序的所有數(shù)據(jù)段,處理一個(gè)數(shù)據(jù)段執(zhí)行循環(huán);內(nèi)循環(huán)針對(duì)一個(gè)數(shù)據(jù)段(把一個(gè)數(shù)據(jù)段看成是山若干個(gè)用空格分開的字符串組成)包含的各個(gè)字符串,處理一個(gè)字符串執(zhí)行循環(huán)。因?yàn)閷?duì)于一個(gè)數(shù)據(jù)段,譯碼模塊用循環(huán)處理,所以譯碼模塊首先計(jì)算零件加工程序中總共有多少個(gè)數(shù)據(jù)段,并用變量記錄這個(gè)數(shù),作為循環(huán)控制的條件。然后進(jìn)入循環(huán),對(duì)每個(gè)數(shù)據(jù)段進(jìn)行處理。首先取個(gè)數(shù)據(jù)段,再讀取個(gè)字特串的個(gè)字符,接下來(lái)是一個(gè)Switch語(yǔ)句判斷讀到的是個(gè)什么字符。根據(jù)零件加工程序編寫的語(yǔ)法規(guī)范,循環(huán)執(zhí)行,直到所有數(shù)據(jù)段處理完畢。形成譯碼結(jié)果,保存在一個(gè)字符數(shù)組當(dāng)中。為零件加工的開始做好了準(zhǔn)備。整個(gè)譯碼處理過程思路清晰,結(jié)構(gòu)簡(jiǎn)單,而且以后可以很方便的擴(kuò)展數(shù)控編程功能,只要在Switch語(yǔ)句中添加Case項(xiàng)就可以實(shí)現(xiàn)。

3.3異步串行通信

本系統(tǒng)采用了RS-232異步串行通信從上位機(jī)向下位機(jī)輸入數(shù)據(jù)。在設(shè)計(jì)PC-MCU通信協(xié)議時(shí),PC是主控者,單片機(jī)主要是被動(dòng)接收PC發(fā)來(lái)的數(shù)據(jù)等內(nèi)容。PC發(fā)送給單片機(jī)的內(nèi)容有三種,一種是機(jī)床控制命令,一種是用于插補(bǔ)的數(shù)據(jù),還有一種端口測(cè)試命令。單片機(jī)發(fā)送給PC機(jī)的主要是機(jī)床狀態(tài)信息、端口測(cè)試返回和數(shù)據(jù)正確接收的確認(rèn)幀。

本通信協(xié)議的設(shè)計(jì)思想是基于幀傳輸方式。即向RS-232串口發(fā)送命令信號(hào)、數(shù)據(jù)信號(hào)時(shí),是一幀一幀傳送的。為了數(shù)據(jù)可靠傳輸,傳送每幀數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)累加和校驗(yàn),如果傳送出錯(cuò),要求重新傳送。連續(xù)傳送三次錯(cuò)誤,系統(tǒng)就退出通信并提示串口傳送失敗。

3.4數(shù)控加工程序編寫

本系統(tǒng)要求零件加工程序的編寫采用ISO標(biāo)準(zhǔn)代碼,并結(jié)合上位機(jī)軟件作了些約定:

1.輸入格式的約定,要求每個(gè)數(shù)據(jù)段中不同代碼部分之間用空格隔開,每一段用“#”作為結(jié)束標(biāo)志符。結(jié)束符和代碼之間也用空格隔開。

2.在零件加工程序中允許出現(xiàn)的字符是:G、M、S、T、F、X、Y、I、K、#以及數(shù)字,正負(fù)號(hào),小數(shù)點(diǎn)等。

3.G、M后只能跟兩位數(shù)字,其它字母后的數(shù)字不限。

4.每段中允許有不同組的G碼,M碼,若屬于同一組則出錯(cuò)。

5.整個(gè)零件加工程序以“END”,作為結(jié)束段。

下面有一個(gè)小程序作為例子來(lái)說(shuō)明這些約定,供參考。

G00X010Y000#

G01X026Y010#

G01X010Y014#

G03X013Y-13113K00#

G01X000Y000#

End

由于使用的是標(biāo)準(zhǔn)代碼,至于各條語(yǔ)句的具體含義在此不多介紹。

4下位機(jī)設(shè)計(jì)

4.1下位機(jī)硬件設(shè)計(jì)

下位機(jī)硬件結(jié)構(gòu)采用MCS-51單片機(jī)作為處理機(jī),由于控制軟件采用了代碼公開的實(shí)時(shí)嵌入式操作系統(tǒng)μC/OS-Ⅱ,所需代碼空間至少在8K字節(jié)以上,所需數(shù)據(jù)空間也超過了該系列CPU內(nèi)部所能提供的數(shù)量,所以必須擴(kuò)展外部存儲(chǔ)空間,考慮到以后系統(tǒng)擴(kuò)展,目前使用了一個(gè)32K字節(jié)的EPROM和一個(gè)8K字節(jié)的RAM作為系統(tǒng)運(yùn)行的存儲(chǔ)空間。代碼公開的實(shí)時(shí)嵌入式操作系統(tǒng)。μC/OS-Ⅱ可以移植到許多的微處理器上,前提是該處理器必須要有堆棧指針,有CPU內(nèi)部寄存器入、出棧指令。μC/OS-Ⅱ是為嵌入式應(yīng)用而設(shè)計(jì)的,很適合用在這種小型的系統(tǒng)中。

由于單片機(jī)內(nèi)部的存儲(chǔ)器不能滿足實(shí)際需要,因此需要從外部進(jìn)行擴(kuò)展,配置外部存儲(chǔ)器,包括程序存儲(chǔ)器EPROM和數(shù)據(jù)存儲(chǔ)器RAM。本系統(tǒng)根據(jù)實(shí)際軟件需要,并考慮到系統(tǒng)今后的擴(kuò)展,采用了32KEPROM27C256作為系統(tǒng)外部程序存儲(chǔ)器,采用8K靜態(tài)RAM6264作為外部數(shù)據(jù)存儲(chǔ)器。采用靜態(tài)RAM設(shè)計(jì)時(shí),無(wú)需外部刷新電路,因此與CPU的接口簡(jiǎn)單。

考慮到微型數(shù)控系統(tǒng)與機(jī)床的信息交換,只有一個(gè)八位端口是不夠用的,因此要進(jìn)行系統(tǒng)I/O擴(kuò)展。選用了可編程控制的外圍并行接口8255A。由于外圍I/O芯片與外部數(shù)據(jù)存儲(chǔ)空間是統(tǒng)一編址的,它不僅占用數(shù)據(jù)存儲(chǔ)器的地址單元,而且使用數(shù)據(jù)存儲(chǔ)器的讀寫控制指令和讀寫指令,這就要求硬件設(shè)計(jì)中要考慮數(shù)據(jù)存儲(chǔ)器與外圍I/O芯片的地址譯碼。

RS232串行通信接口選擇簡(jiǎn)單的應(yīng)用接法,只用了三根線,即串行接收RXD、串行發(fā)送TXD和接地線GND。將“串行發(fā)送”和“串行接收”交叉連接,地線直接相連,其余信號(hào)線都不用。用軟件來(lái)實(shí)現(xiàn)通信的“握手”、空閑檢測(cè)等功能。選用了MAX232串口通信信號(hào)轉(zhuǎn)換芯片來(lái)實(shí)現(xiàn)RS232與TTL的電平轉(zhuǎn)換和正負(fù)邏輯電平的轉(zhuǎn)換。

4.2系統(tǒng)抗干擾設(shè)計(jì)

形成干擾的因素有三個(gè):干擾源、傳播路徑和敏感器件。成為干擾源的都是一些電壓或電流變化比較快的器件或信號(hào);傳播路徑是指從干擾源傳播到敏感器件的通路或媒介;敏感器件是容易被干擾的器件,如A/D、D/A轉(zhuǎn)換器,數(shù)字IC等??垢蓴_設(shè)計(jì)的原則是抑制干擾源,切斷傳播路徑,增強(qiáng)敏感器件的抗干擾能力。采取的主要措施是電路板上每個(gè)IC并接一個(gè)0.01μF高頻電容,以減少IC對(duì)電源的影響。電容的引線要盡量短。布線時(shí)避免90度折線,減少高頻噪音發(fā)射。盡量使晶振和單片機(jī)的引腳靠近,晶振外殼接地。布線時(shí)盡量加粗電源線和地線,可降低耦合噪音。單片機(jī)閑置的I/O口接地或接電源。另外選擇好的電源,對(duì)減少干擾很有幫助。

4.3下位機(jī)軟件設(shè)計(jì)

本系統(tǒng)使用μC/OS-Ⅱ?qū)崟r(shí)嵌入式操作系統(tǒng)開發(fā)單片機(jī)控制軟件。其軟件流程如下:

1.系統(tǒng)初始化

下位機(jī)上電或是復(fù)位以后,系統(tǒng)將從程序代碼空間的首地址0x0000開始執(zhí)行,如果用C語(yǔ)言編寫MCS-51程序的話,就是從Main()函數(shù)的開始處執(zhí)行。程序首先執(zhí)行整個(gè)單片機(jī)系統(tǒng)的軟硬件初始化,包括操作系統(tǒng)的初始化和硬件定時(shí)器、串口等初始化。示意圖如4。

2.創(chuàng)建任務(wù)

初始化完成之后,下位機(jī)就進(jìn)入到了正常工作階段了。這個(gè)時(shí)候內(nèi)存中有了開始創(chuàng)建的4個(gè)任務(wù),分別是任務(wù)serialOperate,解析接收到的上位機(jī)命令;任務(wù)interpolation,插補(bǔ)計(jì)算,輸出控制信號(hào);任務(wù)misc處理M碼及其他空閑任務(wù)OSTaskIdle。起初由于沒有接收到上位機(jī)的各種命令,系統(tǒng)處于就緒等待狀態(tài)。這個(gè)時(shí)候,μC/OS-Ⅱ中優(yōu)先級(jí)別的默認(rèn)任務(wù)-空閑任務(wù)OSTaskIdle()得到了運(yùn)行??臻e任務(wù)不作任何有意義的工作。

3.中斷處理

當(dāng)上位機(jī)通過串口向下位機(jī)發(fā)送工作指令時(shí),下位機(jī)產(chǎn)生串口中斷接收信息,等接收到一個(gè)完整的幀之后,串口中斷服務(wù)程序?qū)腟erylnt()中通過語(yǔ)句OSSemPost(seRecSem)發(fā)出信號(hào)量seRecSem。這個(gè)時(shí)候正在等待這這個(gè)信號(hào)量的任務(wù)serialOperate接收到信號(hào)量它將在中斷服務(wù)程序退出之后恢復(fù)運(yùn)行。

5本文作者創(chuàng)新點(diǎn)

本文的主要目的是進(jìn)行計(jì)算機(jī)數(shù)控系統(tǒng)的研究,并且進(jìn)行微型數(shù)控系統(tǒng)的實(shí)際開發(fā)工作。這是一個(gè)綜合、復(fù)雜的機(jī)電一體化系統(tǒng)。上

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論