朱土榮(東風(fēng)柳州汽車(chē)有限公司,廣西 柳州 545005)
基于AT89S52的GSK 980TA數(shù)控程序傳輸器
朱土榮
(東風(fēng)柳州汽車(chē)有限公司,廣西 柳州 545005)
摘 要:從實(shí)際生產(chǎn)需要出發(fā),通過(guò)對(duì)電腦與廣數(shù)系統(tǒng)980TA之前的串行通訊進(jìn)行深入的研究與分析,結(jié)合自身的電子制作基礎(chǔ),從零開(kāi)始研發(fā),設(shè)計(jì)并制作了一個(gè)數(shù)控程序傳輸器,并投入到實(shí)際生產(chǎn)應(yīng)用。
關(guān)鍵詞:AT89S52;GSK 980TA系統(tǒng);程序傳輸器
東風(fēng)柳汽專(zhuān)用件車(chē)間,是我實(shí)習(xí)所在的車(chē)間,主要負(fù)責(zé)生產(chǎn)公司的各類(lèi)非標(biāo)總成及零件。車(chē)間里有六臺(tái)數(shù)控車(chē)床,使用了廣州數(shù)控設(shè)備有限公司生產(chǎn)的GSK980TA數(shù)控系統(tǒng)。該系統(tǒng)只能存儲(chǔ)63個(gè)程序,由于車(chē)間生產(chǎn)的零件較多,機(jī)床內(nèi)部的存儲(chǔ)空間遠(yuǎn)遠(yuǎn)無(wú)法滿(mǎn)足要求。車(chē)間之前的做法是當(dāng)程序存儲(chǔ)空間不足時(shí),就刪掉一些最近不用的程序,然后手工鍵入新的程序。費(fèi)時(shí)費(fèi)力,且無(wú)法保證準(zhǔn)確性。經(jīng)常有因?yàn)槌绦蝈e(cuò)誤導(dǎo)致零件報(bào)廢的情況發(fā)生。
因此需要改變這一方式,使用傳輸程序代替手工鍵入程序。
為了解決這一問(wèn)題,我上網(wǎng)查找了很多資料,并詳細(xì)透徹的研讀了數(shù)控系統(tǒng)的說(shuō)明書(shū)。根據(jù)系統(tǒng)說(shuō)明,該系統(tǒng)只支持與電腦RS232通信,交換程序、參數(shù)等。既然可以使用筆記本電腦與機(jī)床通信實(shí)現(xiàn)程序傳輸,那么就可以設(shè)計(jì)一個(gè)通訊器做為電腦與機(jī)床之間的移動(dòng)電子版,與U盤(pán)功能類(lèi)似,只不過(guò)這里使用的232通信罷了。
既然要設(shè)計(jì)通訊器,那么通訊器應(yīng)該具有以下功能,以滿(mǎn)足需求
(1)手持式通訊器,鋰電池供電,帶充電、保護(hù)、升壓模塊;
(2)有向電腦發(fā)送、從電腦接收、向機(jī)床發(fā)送、從機(jī)床接收四種功能;
(3)帶背光顯示屏,能顯示通訊狀態(tài)與程序號(hào),可存儲(chǔ)多個(gè)程序。
4.1 要制作通訊器,首先要實(shí)現(xiàn)電腦與機(jī)床之間的程序傳輸
首先安裝數(shù)控系統(tǒng)的傳輸軟件“凱恩帝串口通信3.0版”,這個(gè)軟件是兼容軟件,窗口化操作,比原廠軟件的DOS界面要友好很多。然后根據(jù)系統(tǒng)說(shuō)明書(shū)“第四篇安裝連接 ? 第二章接口信號(hào)定義及連接”的“圖 2-21 系統(tǒng)與PC 機(jī)的連接”制作了一根用于電腦與機(jī)床之間傳輸程序的通信電纜。然后運(yùn)行通信軟件,根據(jù)GSK980TA系統(tǒng)說(shuō)明書(shū)的第三篇之第十一章“通訊”,可知數(shù)控系統(tǒng)默認(rèn)的通信格式為:波特率:2400,停止位:2位,數(shù)據(jù)長(zhǎng)度:7位,校驗(yàn)方式:偶校驗(yàn)。
準(zhǔn)備工作完成后,可以開(kāi)始實(shí)驗(yàn)通訊。通訊不像U盤(pán)拷文件那么簡(jiǎn)單,需要特定的按鍵與操作順序才能完成,同時(shí)還需要關(guān)注數(shù)控系統(tǒng)內(nèi)的參數(shù)設(shè)置,具體操作參考系統(tǒng)說(shuō)明書(shū)“第三篇操作說(shuō)明 ? 第十一章通訊”。
經(jīng)過(guò)實(shí)踐,機(jī)床與電腦之間的通信順利實(shí)現(xiàn),程序可以在機(jī)床與電腦之間自由傳輸。
4.2 破解通訊協(xié)議
通訊上面的實(shí)驗(yàn),程序?qū)崿F(xiàn)了順利的傳輸,可是整個(gè)傳輸過(guò)程到底是怎么實(shí)現(xiàn)的呢?這個(gè)時(shí)候就破解通信協(xié)議,因?yàn)樗械馁Y料、網(wǎng)上的論壇都沒(méi)有公開(kāi)這個(gè)通信協(xié)議。如何破解呢,答案當(dāng)然是監(jiān)聽(tīng)通信過(guò)程,然后用通訊器模仿通信對(duì)象的另一方。監(jiān)聽(tīng)的方法有兩種:硬件監(jiān)聽(tīng)與軟件監(jiān)聽(tīng)。
硬件監(jiān)聽(tīng)是使用另外一臺(tái)機(jī)器,機(jī)器上安裝有兩個(gè)串口硬件,僅使用串口的接收RXD信號(hào),這兩個(gè)信號(hào)分別接到電腦與數(shù)控系統(tǒng)通信線(xiàn)的TXD與RXD線(xiàn)上。這樣就可以在另一臺(tái)電腦的串口助手上清楚的看到兩臺(tái)機(jī)器間的通信了。這種監(jiān)聽(tīng)方法是硬件級(jí)的,肯定可以監(jiān)聽(tīng)到數(shù)據(jù),且不會(huì)被通信著的設(shè)備發(fā)現(xiàn),但實(shí)現(xiàn)方法比較復(fù)雜。
第二種監(jiān)聽(tīng)方法是軟件監(jiān)聽(tīng),從電腦端入手,使用串口監(jiān)聽(tīng)軟件,監(jiān)控電腦串口上的數(shù)據(jù)流。這種方法最簡(jiǎn)單,只要安裝軟件就可以了。監(jiān)聽(tīng)軟件有很多,而且有的通信軟件內(nèi)部有防監(jiān)聽(tīng)功能,具體怎么實(shí)現(xiàn)不詳,在這里,我選擇了Portmon, Portmon是一個(gè)用于監(jiān)控系統(tǒng)串口與并口活動(dòng)的工具。它不但可以監(jiān)控本地機(jī)的串口與并口,而且可以通過(guò)TCP/IP協(xié)議監(jiān)控其它計(jì)算機(jī)。
然后安裝好該軟件,開(kāi)始監(jiān)聽(tīng)。首先監(jiān)聽(tīng)的是電腦向數(shù)控系統(tǒng)傳輸程序的流程,傳輸?shù)牡某绦蚝芎?jiǎn)單,只是一個(gè)程序號(hào)O1234,監(jiān)聽(tīng)并分析數(shù)據(jù)流后,總結(jié)出了電腦向機(jī)床發(fā)送程序的通訊流程:
(1)機(jī)床會(huì)先向電腦發(fā)送一個(gè)特征字11H,代表電腦可以發(fā)送了;
(2)此時(shí)電腦開(kāi)始向機(jī)床發(fā)送數(shù)據(jù)流:25H 20H 0AH 3AH
31H 32H 33H 34H 0AH 25H 25H 25H。開(kāi)頭與結(jié)束的25H是電腦附加的,為內(nèi)容開(kāi)頭與結(jié)束特征字,中間的內(nèi)容為程序?qū)嶓w內(nèi)容。
4.2.3 最后機(jī)床向電腦發(fā)送一個(gè)HEX碼:13H。代表接收成功。
然后我又監(jiān)控了很多種通信過(guò)程,兩種通信模式:機(jī)床發(fā)送給電腦,機(jī)床從電腦接收,不同的程序內(nèi)容:各種程序號(hào),只有程序號(hào)的,有程序號(hào)和程序內(nèi)容的。終于總結(jié)出了機(jī)床與電腦通信的規(guī)律,而且在這里只是需要制作一個(gè)通訊器,不需要對(duì)中間的內(nèi)容進(jìn)行詳細(xì)的解析,只需要對(duì)開(kāi)頭和結(jié)尾的幾個(gè)字節(jié)進(jìn)行分析就行了,其它內(nèi)容都是原版不動(dòng)的存儲(chǔ)起來(lái)就行了。
5.1 通訊器的功能框圖如下
5.2 通訊器主要元件選型
核心零件——單片機(jī)選擇了AT89S52,原因很簡(jiǎn)單,這個(gè)是我平時(shí)搞電子常用的單片機(jī),目前我比較拿手的也是這個(gè)單片機(jī),為了快速的完成這個(gè)通訊器,在這里沒(méi)有考慮其它的單片機(jī)。
存儲(chǔ)器——ISSC65256。由于AT89S52只有8k字節(jié)的片上Flash,且單片機(jī)無(wú)法自編程,加上片上只無(wú)集成了256字節(jié)RAM。要存儲(chǔ)數(shù)控系統(tǒng)的程序,這顯然是不夠了,于是我選擇了ISSC62565這個(gè)外部并行總線(xiàn)的32KRAM,這個(gè)芯片我在大學(xué)的時(shí)候用過(guò),很適合AT89S52,雖然與單片機(jī)的聯(lián)線(xiàn)比較多,但使用起來(lái)很簡(jiǎn)單,存儲(chǔ)速度也比單片機(jī)快多了,程序處理也很簡(jiǎn)單。
RS232串行通信接品電路,在這里無(wú)疑是選用MAX232芯片。我設(shè)計(jì)的這個(gè)模塊還有一個(gè)特色,就是支持交叉與直連轉(zhuǎn)換。串行通信都要求一方的TX信號(hào)線(xiàn)接另一方的RX信號(hào)線(xiàn),否則無(wú)法通信。在這里我使用了一個(gè)6毫米的雙刀雙擲轉(zhuǎn)換開(kāi)關(guān),如果無(wú)法通信,可以通過(guò)開(kāi)關(guān)轉(zhuǎn)換,以保證通信成功,而不用更換通信線(xiàn)。
剩下的就是其它的外轉(zhuǎn)電路:RS232轉(zhuǎn)TTL電路及外圍元件,1602字符型顯示屏及外圍電路,按鍵電路、鋰電池升壓及充電控制電路(在這里選擇了現(xiàn)成的一體化模塊)。在這里使用了很大眾化的電路板設(shè)計(jì)軟件:Altium Designer Sumer 06。
5.3 程序調(diào)試
由于這個(gè)單片機(jī)的資源實(shí)在是有限,我依舊只能使用匯編語(yǔ)言來(lái)設(shè)計(jì)程序,程序比較難讀,但不得不佩服匯編的高效率。程序運(yùn)行得很好,在這里摘錄了一段通訊器從機(jī)床接收程序的子程序TAFA。程序內(nèi)容如下:
TAFA: CLR TI ;清發(fā)送中斷標(biāo)志,防止上次影響
CLR RI ;清接收中斷標(biāo)志,防止上次影響
MOV DPTR,#LINE9 ;顯示"TA Kai Shi FA"
LCALL DISPA1
MOV DPL,70H;重新載入程序存儲(chǔ)首地址MOV DPH,71H
JNB RI,$ ;等待計(jì)算機(jī)發(fā)送程序
CLR RI
MOV A,SBUF ;把接收緩沖器的內(nèi)容送到累加器
CJNE A,#12H,TAFA;檢測(cè)發(fā)過(guò)來(lái)的內(nèi)容是否以12開(kāi)頭
JNB RI,$ ;等待計(jì)算機(jī)發(fā)送程序,不存儲(chǔ)12這個(gè)開(kāi)關(guān)
CLR RI
MOV A,SBUF;把接收緩沖器的內(nèi)容送到累加器25H
MOVX @DPTR,A;存儲(chǔ)接收來(lái)的內(nèi)容
INC DPTR ;指向下一地址
TAFA1: JNB RI,$ ;接收內(nèi)容
CLR RI
MOV A,SBUF
MOVX @DPTR,A ;存儲(chǔ)接收來(lái)的內(nèi)容
INC DPTR ;指向下一地址
CJNE A,#0A5H,TAFA1;收到25H則認(rèn)為程序內(nèi)容結(jié)束。
TAFA2: JNB RI,$ ;再接收一個(gè)25H
CLR RI
MOV A,SBUF ;把接收緩沖器的內(nèi)容送到累加器25H
CJNE A,#14H,TAFA ;收到14H則認(rèn)為程序內(nèi)容結(jié)束,不存儲(chǔ)14H
LCALL XUHAO ;調(diào)用分離并顯示程序號(hào)的子程序
MOV DPTR,#LINE13;顯示"TA FA Wan "
LCALL DISPA1
RET
截止至目前,通訊器已經(jīng)投入實(shí)際生產(chǎn)應(yīng)用半年有余,生產(chǎn)班組反饋良好,每次傳輸程序都能正確完成,數(shù)控班班長(zhǎng)電腦內(nèi)的程序庫(kù)也一天天的完善起來(lái)?,F(xiàn)在已經(jīng)很少看到有人面機(jī)床的十寸顯示屏上用按鍵輸入程序了。可以說(shuō),這個(gè)通訊器的制作還是相當(dāng)成功的。
新一代的數(shù)控系統(tǒng)都已經(jīng)意識(shí)到了串口傳輸?shù)牟槐?,紛紛集成了新型的傳輸接口及協(xié)議,比如USB接口、CF卡接口、以太網(wǎng)接口等。但對(duì)于公司已有的機(jī)床設(shè)備來(lái)說(shuō),不可能因?yàn)橐粋€(gè)程序傳輸?shù)牟槐愣p易的更換整個(gè)數(shù)控系統(tǒng)。數(shù)控系統(tǒng)在整個(gè)機(jī)床的壽命周期里一般是不更換的。這里所制作的數(shù)控機(jī)床通訊器,雖然不是非常高科技的制作,甚至由于AT89S52這顆CPU顯得有些落伍。但通訊器還是解決了老系統(tǒng)程序傳輸這個(gè)難題,提高了車(chē)間的生產(chǎn)效率,降低了因程序錯(cuò)誤引起的廢品率。
參考文獻(xiàn):
[1]GSK980TA車(chē)床用數(shù)控系統(tǒng)使用手冊(cè)[M].廣州數(shù)控設(shè)備有限公司出版,2005(05).
[2]陳明熒.8051 單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教程[M].清華大學(xué)出版社.
作者簡(jiǎn)介:朱土榮(1984-),男,壯族,廣西人,本科,助理工程師,從事設(shè)備電氣工作,東風(fēng)柳州汽車(chē)有限公司車(chē)架車(chē)間設(shè)備科電氣設(shè)備工程師。