繞線機是工業(yè)生產(chǎn)中的重要的設備,繞線機所繞制的產(chǎn)品是經(jīng)常變化的,會經(jīng)常根據(jù)繞線的匝數(shù)和線徑來調(diào)整繞線機的參數(shù)。龍鑫電子從事自動繞線機,全自動繞線機的研發(fā)已經(jīng)具有豐富的經(jīng)驗,從最初的PLC控制到現(xiàn)在的單片機,我們提出用PS/2接口的數(shù)字鍵盤來實現(xiàn)參數(shù)的設置。
PS/2接口的數(shù)字鍵盤采用的通訊協(xié)議方便可靠,用計算機的PS/2接口數(shù)字小鍵盤來作為輸入的設定,是一種十分方便和廉價的方法,可以方便地修改單片機的各種參數(shù)。
1、PS/2鍵盤介紹
上電后,PS/2接口小鍵盤上電自檢通過發(fā)出信號OxAA或者發(fā)出自檢錯誤信號OxFC、單片機接收為OxAA,進入下一步,否則,進行出錯誤處理、關掉鍵盤的LED指示燈,單片機發(fā)送OxED信號,然后接收鍵盤回應給單片機的OxFA信號,接著發(fā)送0x00并接收單片機發(fā)送的OxFA應答信號、設置機打延時和速讀發(fā)送OxF6,接收OxFA應答、檢查小鍵盤LED指示燈,發(fā)送OxED,接收OxFA,發(fā)送0x07開LED指示燈,接收OxFA,發(fā)送0x00關LED指示燈,接收接收應答信號OxFA。
2 PS/2鍵盤通訊原理
PS/2接口鍵盤與主機采用雙向通信方式,鍵盤可以向主機發(fā)送數(shù)據(jù),主機也可以發(fā)送命令給鍵盤。主機具有最高優(yōu)先權(quán)。通信協(xié)議是標準的串行異步通信格式,1位起始位,8位數(shù)據(jù)位LSB在先,1位奇校驗位,1位停i1位,若為主機發(fā)送狀態(tài),則還有一位應答位ACK、數(shù)據(jù)格式如圖2所示。
主機同鍵盤進行通信時,無論發(fā)送還是接收數(shù)據(jù),都要依賴于鍵盤發(fā)送的時鐘脈沖,每次數(shù)據(jù)傳輸發(fā)送11個時鐘脈沖,時鐘頻率為10~16.7kHz,通過判斷時鐘脈沖的上升沿和下降沿,逐位發(fā)送或讀取數(shù)據(jù)位。當數(shù)據(jù)線DATA和時鐘線CLK同時為高電平時,鍵盤可以發(fā)數(shù)據(jù)給主機、CLK可用作清除發(fā)送線、如果主機將CLK拉為低電平,則禁止鍵盤發(fā)送數(shù)據(jù),變成將需要發(fā)送的數(shù)據(jù)放到了發(fā)送緩存區(qū)中,直到CLK變?yōu)楦唠娖讲砰_始發(fā)送數(shù)據(jù)。如果主機將DATA拉低,則當鍵盤檢測到這一變化時,接收來自主機的命令2、概括如圖3所示。
當鍵盤發(fā)送數(shù)據(jù)時,鍵盤先將DATA拉低,通知主機準備接收數(shù)據(jù)。鍵盤在CLK為高電平時接收數(shù)據(jù)主機在CLK為低電平時讀取數(shù)據(jù)。發(fā)送數(shù)據(jù)的時鐘信號由鍵盤產(chǎn)生、時序如圖4所示。
為了避免在同一時刻發(fā)送數(shù)據(jù),應將CLK拉低大約100μs以上,以禁止鍵盤發(fā)送數(shù)據(jù)、然后主機將數(shù)據(jù)線DATA拉低,發(fā)送起始位,并釋放CLK高電平,由鍵盤接管CLK,以產(chǎn)生時鐘信號、主機在此同步時鐘信號下發(fā)送數(shù)據(jù)、鍵盤接收數(shù)據(jù)是從檢測到DATA變低開始,然后在CLK為高電平時讀取數(shù)據(jù),這與鍵盤發(fā)送數(shù)據(jù)時的情形相反。當主機發(fā)送完校驗位后,釋放數(shù)據(jù)線DATA停止位。隨后,鍵盤將DATA置成低電平,作為收到數(shù)據(jù)的應答信號ACK,并產(chǎn)生一個周期的時鐘脈沖、如果在第11個脈沖后,主機未釋放DATA,鍵盤將繼續(xù)發(fā)送時鐘信號到DATA空閑。
鍵盤等待發(fā)送數(shù)據(jù)時它首先檢查時鐘以確認它是否是高電平狀態(tài),如果小是,那么是主機抑制了通訊設備,必須緩沖任何要發(fā)的數(shù)據(jù)直到重新獲得總線的控制權(quán)。鍵盤有16字節(jié)的緩沖區(qū),而緩沖區(qū)僅存儲最后一個要發(fā)送的數(shù)據(jù)包如果時鐘線是局電平設備就可以開始傳送數(shù)據(jù)。
3軟件流程圖和主要程序
程序流程圖各個模塊的作用,系統(tǒng)初始化:系統(tǒng)程序所應用到的寄存器進行參數(shù)初始化設定,防止寄存器小確定的參數(shù)對程序運行造成影響、按鍵模塊:利用中斷消抖而節(jié)省消抖所占用的時間,且按鍵的執(zhí)行使用Switch語句進行散轉(zhuǎn),達到多個參數(shù)的設定、EEPROM的讀寫:將己設定號的參數(shù)就行保存,重新上電可以讀出己設定好的參數(shù),防止參數(shù)的去失、SPI通訊:讓鍵盤和控制芯片進行通訊、電機驅(qū)動:使用四線兩相步進電機控制,程序編寫拉局或拉低電平形成脈沖。
應用C語言進行程序編寫,根據(jù)寄存器在程序中的使用范圍,定義全局變量和局部變量,合理定義變量節(jié)省內(nèi)存的空間。程序中按鍵的執(zhí)行使用Switch語句,編寫出的程序?qū)哟畏置、簡單明朗。EEPROM的讀寫保證參數(shù)的小會去失,SPI通訊的應用為控制芯片和PS/2接口鍵盤搭建了一條數(shù)據(jù)通道。最后送顯模塊,使用數(shù)碼管,程序編寫難度低,并起到人機界面交流的作用。
4結(jié)束語
繞線機所繞制的產(chǎn)品是經(jīng)常變化的,因此,要根據(jù)繞線的匝數(shù)和線徑經(jīng)常來調(diào)整繞線機的參數(shù),利用PS/2接II鍵盤實現(xiàn)參數(shù)的設置,采用SPI的通訊占用的I/O少,通訊協(xié)議可靠簡單,且PS/2接口小鍵盤在市場己經(jīng)普及,因此模塊的維護和更換十分方便,價格低廉。使用該PS/2就接II鍵盤修改參數(shù)簡單,并在生產(chǎn)過程中也提高可效益。