專利名稱::通用手持編程器通信控制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種利用手持編程器對待設(shè)置的控制對象進行通信控制的方法,具體涉及一種可適用于多種不同格式的控制對象進行通信控制的方法。
背景技術(shù):
:微控制器的運用使控制對象具有了精度髙、功能多、靈活性強、可進行參數(shù)設(shè)置等新特征。因此,微控制器在控制領(lǐng)域得到了廣泛應用,主要體現(xiàn)在利用與控制對象相配套的編程器,使用戶在現(xiàn)場能夠方便地對控制對象參數(shù)進行修改、設(shè)置和查閱,使控制器能夠適合各種復雜場合的應用需要,同時也為控制器提供了友好的人機界面。所謂的手持編程器就是通過一條專用通訊線與控制對象實現(xiàn)通訊連接,在手持編程器端設(shè)置被控對象的各種工作參數(shù),被控對象端的微控制器據(jù)此對被控對象進行操控,從而實現(xiàn)對控制對象的控制的裝置。手持編程器因其體積小、重量輕、性能卓越而贏得愈來愈多的國內(nèi)客戶的青睞,目前常見的有三菱、歐姆龍、西門子手持編程器?,F(xiàn)有的手持編程器是針對特定的控制對象而言的,在手持編程器中設(shè)置有對應于特定控制對象的數(shù)據(jù)存貯區(qū),手持編程器上設(shè)置有對應待控制參數(shù)的控制按鍵,操作者通過選擇對應參數(shù)的控制按鍵,來改變參數(shù)的設(shè)置值,手持編程器據(jù)此生成控制命令,與控制對象進行通信,實現(xiàn)參數(shù)的修改控制。上述手持編程器存在的問題是,由于必須預先針對特定的控制對象設(shè)置數(shù)據(jù)存貯區(qū)和參數(shù)控制按鍵,一種手持編程器只能適用于一種被控對象或者是幾種控制參數(shù)相同的被控對象,因而不具有通用性。顯然,如果能夠設(shè)計一種適合于多種需求的通用型手持編程器,則對于同一工作區(qū)域的多臺被控制設(shè)備只需要采用一臺手持編程器,可以降低設(shè)備的采購成本,方便操作者的管理和使用,減少不必要的資源浪費。
發(fā)明內(nèi)容本發(fā)明目的是提供一種通用手持編程器通信控制的方法,通過該方法,實現(xiàn)一種手持編程器與多個被控對象間的信息交換。為達到上述發(fā)明目的,本發(fā)明采用的技術(shù)方案是一種通用手持編程器通信控制的方法,包括下列步驟(1)手持編程器上電,進行自身信息初始化;(2)在手持編程器的存貯器中開辟與整屏顯示數(shù)據(jù)量相同的顯示緩沖區(qū),用于暫存待顯示的一整屏信息;設(shè)置命令緩沖區(qū),用于暫存控制命令;(3)手持編程器與被控對象進行通信,下載控制參數(shù)的信息,獲取控制參數(shù)的初始值,并存入所述顯示緩沖區(qū)中(4)在手持編程器上顯示控制參數(shù)的信息及初始值,通過控制按鍵調(diào)整控制參數(shù)的值為所需設(shè)定的值;(5)根據(jù)按鍵命令和顯示緩沖區(qū)中控制參數(shù)的當前值生成控制命令,存入所述命令緩沖區(qū)中;(6)與被控對象進行通信,發(fā)送所述控制命令,實現(xiàn)控制參數(shù)的修改。上述技術(shù)方案中,步驟(3)中,所述控制參數(shù)的信息包括參數(shù)名稱、初始值、上限、下限和步長。步驟(4)中,調(diào)整控制參數(shù)的值的方法為,通過按鍵選定需要調(diào)整的參數(shù),用兩個按鍵分別控制參數(shù)的值的增加和減小,在未達到上限或下限時,每一次按鍵時增加或減小一個步長。由于在獲取的控制參數(shù)信息中包括了上、下限值、步長和初始值,在本步驟中容易通過按鍵實現(xiàn)控制;其中,當被控參數(shù)為開關(guān)量時,一種方法是在參數(shù)信息中說明,另一種方法是,把開關(guān)量的上、下限值分別定義為l和O,步長定義為l,從而實現(xiàn)和其它參數(shù)同樣的控制。通常,對多個參數(shù)的設(shè)定有兩種控制方式,一種方式是,一次性讀取所有參數(shù)信息,對應在手持編程器上設(shè)置參數(shù)選擇按鈕,選擇需要調(diào)整的參數(shù)進行控制;另一種優(yōu)選的方式為,在被控對象中存貯有控制參數(shù)選項菜單,在所述步驟(2)和(3)之間,手持編程器首先與控制對象進行通信,下載控制參數(shù)選項菜單存入所述顯示緩沖區(qū)中并進行顯示,操作者選取待控制參數(shù),通過所述步驟(3)至(6)實現(xiàn)控制,然后返回控制參數(shù)選項菜單,重復上述過程直至完成所有控制參數(shù)的調(diào)整。上述技術(shù)方案中,所述手持編程器與控制對象進行通信的方法為,設(shè)有重發(fā)計數(shù)器,在進行通信時,首先對重發(fā)計數(shù)器清零,然后將所述命令緩沖區(qū)中的數(shù)據(jù)發(fā)送至控制對象,并對重發(fā)計數(shù)器加l,如未收到返回數(shù)據(jù),當重發(fā)計數(shù)器數(shù)值大于2時,顯示出錯信息,否則重復數(shù)據(jù)發(fā)送過程;在接收到返回數(shù)據(jù)后,對數(shù)據(jù)按預先設(shè)定的規(guī)則進行校驗。由于上述技術(shù)方案的運用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點1.本發(fā)明通過從被控對象處下載控制參數(shù)上下限、開關(guān)量定義以及變量間隔(步長)、當前數(shù)值等,然后屏幕顯示這些數(shù)值,在手持編程器上利用按鍵方式對參數(shù)值進行修改,并將修改的參數(shù)值發(fā)送到控制設(shè)備,由控制設(shè)備進行處理,最終將結(jié)果反饋到手持編程器以便于對控制設(shè)備參數(shù)的査閱,由此確保嵌入式系統(tǒng)的安全性、可靠性、抗干擾性。2.由于控制參數(shù)是從控制對象處獲取的,因而可以任意改變被控對象的控制參數(shù)個數(shù)、種類、上下限及步長,從而適用于多種不同的被控對象的控制。圖1是本發(fā)明實施例一的通信電平選擇電路圖。圖2是本發(fā)明實施例一中SCI串行通信流程圖。圖3是實施例二的系統(tǒng)運行流程圖。具體實施方式下面結(jié)合附圖及實施例對本發(fā)明作進一步描述實施例一一種通用手持編程器通信控制方法,包括以下步驟(1)開辟64字節(jié)的LCD顯示緩沖區(qū),用于暫存待顯示的一整屏信息;(2)編程器由編程對象(即被控對象)供電(3)在SCI串行通信正常的情況下,手持編程器由步驟(2)上電后,手持編程器在自身信息初始化之后從編程對象處下載控制參數(shù),獲得手持編程器對編程對象的初始參數(shù)設(shè)置,并將該值存入步驟(l)所述的顯示緩沖區(qū)中;(4)在編程器的數(shù)據(jù)寄存器內(nèi)設(shè)置一個命令緩沖區(qū);(5)在系統(tǒng)正常情況下,根據(jù)參數(shù)值和按鍵情況得到控制命令,并且計算校驗碼存入步驟(4)中所述命令緩沖區(qū)中;開啟重發(fā)計數(shù),發(fā)送存入步驟(2)中所述命令緩沖區(qū)中的數(shù)據(jù);如果在重發(fā)兩遍數(shù)據(jù)后,沒有收到數(shù)據(jù),顯示"通信出錯";如果成功收到數(shù)據(jù),則隨后驗證收到的數(shù)據(jù),顯示結(jié)果(包括出錯結(jié)果)。本實施例中,通用手持編程器的主控芯片為飛思卡爾半導體公司生產(chǎn)的一款性價比髙的MC68HC908LJ12,雖然Flash空間較小,但12K已足夠使用,與編程對象的接口使用標準的9芯串口。對于手持編程器與控制對象信息交換的顯示,采用4行8列帶漢字字庫的LCD,可以顯示4行8列的中文或者4行16列的英文。根據(jù)程序模塊化和獨立性的思想,由于一個漢字碼占用2個字節(jié),4行8列一共64個字節(jié)。在這64字節(jié)信息中,按行橫向排列可以安排控制對象的基本信息控制對象名稱、研發(fā)公司名稱、控制對象的SN號和型號。為此,上述技術(shù)方案中,在手持編程器上開辟64字節(jié)的LCD顯示緩沖區(qū),用于暫存待顯示的一整屏信息。而顯示一整屏漢字信息的操作則放到定時器中斷處理程序中,這樣就能把顯示的內(nèi)容放到顯示緩沖區(qū)中,定時刷新顯示,使LCD的顯示操作和顯示的更新操作分開處理。由此,顯示的更新操作只需要改變顯示緩沖區(qū)中的內(nèi)容即可。手持編程器上電的主要方式是從控制對象處取電。這一技術(shù)方案主要是利用串口頭第6腳獲得上電。上電后,手持編程器和控制對象的通信開始建立,通信過程如下手持編程器首先發(fā)送一幀給控制對象,控制對象根據(jù)幀中不同的命令字符做不同的處理,然后回送給手持編程器一幀內(nèi)容作為應答信息。通信方式以及通信所遵守的協(xié)議是通信過程的保證。通用手持編程器可以支持TTL電平通信和232電平通信,SCI串行通信方式可以通過跳線的方式選擇串口使用哪種電平通信。具體方法如下如果選擇TTL電平通信去掉COMMR3和COMMR2兩個0歐的電阻;如果選擇232電平通信則去掉COMMR5和COMMR4這兩個0歐的電阻。通過這樣的跳線方式,達到在硬件上,選擇不同電平的目的,電路參見附圖l所示。對于通信協(xié)議的規(guī)定,本實施例采用特定的發(fā)送指令格式和接受數(shù)據(jù)格式進行信息交換。在串行通信的過程中,如果發(fā)送方和接收方?jīng)]有同步開始收發(fā)數(shù)據(jù),接收方往往會從發(fā)送方給的數(shù)據(jù)中間開始截取,這樣就會造成接收到錯位數(shù)據(jù)的現(xiàn)象。為了有效防止出現(xiàn)這樣的問題,在每批發(fā)送的數(shù)據(jù)流頭尾都加上數(shù)據(jù)幀,接收方在接收到一批數(shù)據(jù)后,如果驗證到數(shù)據(jù)幀頭尾不正確,就將此幀數(shù)據(jù)全部丟掉。SDF-1型手持編程器通信協(xié)議規(guī)定手持編程器發(fā)送數(shù)據(jù)流的幀頭為"W",接收數(shù)據(jù)流的幀頭為"A",幀尾都為"E"(注意幀頭尾字符為人為規(guī)定,沒有特殊含義)。手持編程器發(fā)送的幀都為IO個字節(jié),發(fā)送指令的格式為一個字節(jié)幀頭"W"+3個字節(jié)命令字符+3個字節(jié)參數(shù)數(shù)據(jù)+1個字節(jié)語言標志位+1個字節(jié)異或校驗碼+—個字節(jié)幀尾"E"。手持編程器接收的幀長度不定,接收數(shù)據(jù)的格式為l個字節(jié)幀頭"A"+1個字節(jié)幀字節(jié)個數(shù)+乂個字節(jié)(乂>=1)須接收的數(shù)據(jù)內(nèi)容+1個字節(jié)異或校驗碼+1個字節(jié)幀尾"E"。手持編程器發(fā)送幀中的命令字符說明了該幀的含義,也規(guī)定了隨后接收幀中數(shù)據(jù)內(nèi)容的格式和含義。手持編程器命令字符與對應數(shù)據(jù)內(nèi)容的詳細說明見表1-<table>tableseeoriginaldocumentpage7</column></row><table>在手持編程器與控制對象的通信開始之時,手持編程器顯示一屏初始化信息,主要包括手持編程器的型號、序列號、研發(fā)公司等。初始化信息大約持續(xù)2秒鐘左右,隨后手持編程器讀取編程對象信息,并顯示在LCD上。如果沒有讀到編程對象的信息,則顯示"通信出錯",并一直讀取編程對象信息,直到成功為止。編程對象信息包括編程對象名、序列號、型號、研發(fā)公司等。讀到編程對象信息,并將該信息設(shè)置為手持編程器的初始值。在編程模式狀態(tài)下每一屏顯示一個編程對象的參數(shù)信息,可以通過上下鍵循環(huán)選擇參數(shù)。每按一次上鍵或下鍵后,手持編程器發(fā)送讀此時參數(shù)的命令幀。如果成功接收到所要的數(shù)據(jù)幀,編程器顯示當前控制器參數(shù)的值(包括單位);如果接收數(shù)據(jù)幀不成功,則顯示出錯信息(通信出錯、讀寫指令出錯、校驗出錯)。整個SCI發(fā)送控制命令的程序流程大體如下首先,根據(jù)參數(shù)值和按鍵中斷情況,判斷控制命令并計算相應的校驗碼,存于命令緩沖區(qū)中。第二,開啟重發(fā)計數(shù),發(fā)送緩沖區(qū)中的數(shù)據(jù)。第三,如果在重發(fā)兩遍數(shù)據(jù)后,沒有收到數(shù)據(jù),顯示"通信出錯"。第四,如果成功收到數(shù)據(jù),則隨后驗證收到的數(shù)據(jù),顯示結(jié)果(包括出錯結(jié)果),通信結(jié)束。通信過程見附圖2所示。其中,開辟顯示緩沖區(qū)是使LCD的顯示操作和顯示的更新操作分開處理,可以更快捷便利的控制編程對象;而在通信中的通信方式的選擇、發(fā)送指令和接受數(shù)據(jù)格式的規(guī)定以及通信中命令緩沖區(qū)的設(shè)置,使得手持編程器所處理的控制對象的內(nèi)容都不在手持編程器上,而在控制對象處,在手持編程器與控制對象連接之前,編程器沒有任何內(nèi)容,在控制處理過程中編程器也不下載控制對象的內(nèi)容到本地。這樣一來,通用手持編程器就可以廣泛適用于多種電機控制器、電量計以及各種可以通過串行通信設(shè)定參數(shù)的設(shè)備,而不是僅僅局限于有限的幾種控制器。實施例二一種通用手持編程器通信控制方法,包括以下步驟(1)幵辟64字節(jié)的LCD顯示緩沖區(qū),用于暫存待顯示的一整屏信息;(2)編程器由編程對象供電;(3)在SCI串行通信正常的情況下,手持編程器由步驟(2)上電后,手持編程器在自身信息初始化之后從編程對象處下載控制參數(shù),獲得手持編程器對編程對象的初始參數(shù)設(shè)置,并將該值存入步驟(l)所述的顯示緩沖區(qū)中;(4)在編程器的數(shù)據(jù)寄存器內(nèi)設(shè)置一個命令緩沖區(qū);[51在系統(tǒng)正常情況下,根據(jù)參數(shù)值和按鍵情況得到控制命令,并且計算校驗碼存入步驟(4)中所述命令緩沖區(qū)中;開啟重發(fā)計數(shù),發(fā)送存入步驟(2)中所述命令緩沖區(qū)中的數(shù)據(jù);如果在重發(fā)兩遍數(shù)據(jù)后,沒有收到數(shù)據(jù),顯示"通信處錯"如果成功收到數(shù)據(jù),則隨后驗證收到的數(shù)據(jù),顯示結(jié)果(包括出錯結(jié)果)。本實例中手持編程器的程序模塊主要包括LCD顯示模塊、按鍵程序模塊、菜單程序模塊、串行通信模塊和寫Flash子程序模塊。整體流程見附圖3。SFD-1型通用手持編程器軟件通過與控制設(shè)備串行通信,一方面從控制器讀取參數(shù)及狀態(tài)信息,將控制器數(shù)據(jù)通過LCD顯示出來;另一方面掃描按鍵操作,形成相應的命令字寫入到控制器中,對控制器進行參數(shù)設(shè)置。其中串行通信模塊是關(guān)鍵模塊之一。SCI模塊的主要任務(wù)一方面是為命令字生成校驗碼后向控制器發(fā)送;另一方面是接收控制器傳回的數(shù)據(jù)并進行校驗。為了保證數(shù)據(jù)傳輸?shù)目煽啃裕赟CI程序設(shè)計中增加了超時重傳功能。SCI重傳協(xié)議執(zhí)行過程大體如下首先,根據(jù)菜單級別和按鍵中斷情況,判斷控制命令并計算相應的校驗碼,存于命令緩沖區(qū)中。第二,開啟定時器計時。第三,如果在指定的發(fā)送時間(大約為5秒后),沒有收到數(shù)據(jù),則重發(fā)控制命令。第四,如果兩次重傳后仍收不到數(shù)據(jù)(大約15秒),則認為通信出錯;如果成功收到數(shù)據(jù),則隨后驗證收到的數(shù)據(jù),顯示結(jié)果(包括出錯結(jié)果)。最后,關(guān)閉定時器,通信結(jié)束。權(quán)利要求1.一種通用手持編程器通信控制方法,其特征在于,包括下列步驟(1)手持編程器上電,進行自身信息初始化;(2)在手持編程器的存貯器中開辟與整屏顯示數(shù)據(jù)量相同的顯示緩沖區(qū),用于暫存待顯示的一整屏信息;設(shè)置命令緩沖區(qū),用于暫存控制命令;(3)手持編程器與被控對象進行通信,下載控制參數(shù)的信息,獲取控制參數(shù)的初始值,并存入所述顯示緩沖區(qū)中;(4)在手持編程器上顯示控制參數(shù)的信息及初始值,通過控制按鍵調(diào)整控制參數(shù)的值為所需設(shè)定的值;(5)根據(jù)按鍵命令和顯示緩沖區(qū)中控制參數(shù)的當前值生成控制命令,存入所述命令緩沖區(qū)中;(6)與被控對象進行通信,發(fā)送所述控制命令,實現(xiàn)控制參數(shù)的修改。2.根據(jù)權(quán)利要求1所述的通用手持編程器通信控制方法,其特征在于步驟(3)中,所述控制參數(shù)的信息包括參數(shù)名稱、初始值、上限、下限和步長。3.根據(jù)權(quán)利要求2所述的通用手持編程器通信控制的方法,其特征在于步驟(4)中,調(diào)整控制參數(shù)的值的方法為,通過按鍵選定需要調(diào)整的參數(shù),用兩個按鍵分別控制參數(shù)的值的增加和減小,在未達到上限或下限時,每一次按鍵時增加或減小一個步長。4.根據(jù)權(quán)利要求1所述的通用手持編程器通信控制方法,其特征在于在被控對象中存貯有控制參數(shù)選項菜單,在所述步驟(2)和(3)之間,手持編程器首先與控制對象進行通信,下載控制參數(shù)選項菜單存入所述顯示緩沖區(qū)中并進行顯示,操作者選取待控制參數(shù),通過所述步驟(3)至(6)實現(xiàn)控制,然后返回控制參數(shù)選項菜單,重復上述過程直至完成所有控制參數(shù)的調(diào)整。5.根據(jù)權(quán)利要求1所述的通用手持編程器通信控制方法,其特征在于所述手持編程器與控制對象進行通信的方法為,設(shè)有重發(fā)計數(shù)器,在進行通信時,首先對重發(fā)計數(shù)器清零,然后將所述命令緩沖區(qū)中的數(shù)據(jù)發(fā)送至控制對象,并對重發(fā)計數(shù)器加l,如未收到返回數(shù)據(jù),當重發(fā)計數(shù)器數(shù)值大于2時,顯示出錯信息,否則重復數(shù)據(jù)發(fā)送過程;在接收到返回數(shù)據(jù)后,對數(shù)據(jù)按預先設(shè)定的規(guī)則進行校驗。全文摘要本發(fā)明公開了一種通用手持編程器通信控制的方法,其特征在于在手持編程器的存貯器中開辟顯示緩沖區(qū)用于暫存待顯示的一整屏信息;設(shè)置命令緩沖區(qū)用于暫存控制命令;手持編程器與被控對象進行通信,下載控制參數(shù)的信息,獲取控制參數(shù)的初始值,并存入所述顯示緩沖區(qū)中;在手持編程器上顯示控制參數(shù)的信息及初始值,通過控制按鍵調(diào)整控制參數(shù)的值為所需設(shè)定的值;根據(jù)按鍵命令和顯示緩沖區(qū)中控制參數(shù)的當前值生成控制命令并發(fā)送給被控對象,實現(xiàn)控制參數(shù)的修改。本發(fā)明通過從被控對象處下載控制參數(shù)信息,可以任意改變被控對象的控制參數(shù)個數(shù)、種類、上下限及步長,適用于多種不同的被控對象的控制。文檔編號H04L12/54GK101369867SQ20081019672公開日2009年2月18日申請日期2008年9月17日優(yōu)先權(quán)日2008年9月17日發(fā)明者仇國陽,劉純平,曹金華,朱巧明,王宜懷申請人:蘇州大學