專利名稱::一種基于gui的變頻器鍵盤及其控制方法
技術領域:
:本發(fā)明涉及變頻調(diào)速系統(tǒng)的監(jiān)控。
背景技術:
:隨著電力電子技術、微電子技術以及現(xiàn)代控制理論的發(fā)展,變頻器已經(jīng)廣泛地應用于交流電動機的速度控制。由于變頻器高效的驅(qū)動性能和良好的控制特性,使其在鋼鐵、化工、紡織、機械電力、造紙等各個行業(yè)中被廣泛使用。目前變頻器上的鍵盤一般都是用數(shù)碼管或單色液晶來實現(xiàn)。調(diào)試參數(shù)時,必須要一個個的翻找參數(shù),非常浪費時間。并且鍵盤的顯示界面比較單一,都是用單色顯示。在鍵盤上也不能實時地顯示關鍵參數(shù)的曲線,給調(diào)試者帶來諸多不便。目前調(diào)試人員在對變頻器進行大規(guī)模調(diào)試時,一般都是采用上位機進行調(diào)試,只有小地方改動的時候才用到鍵盤。鍵盤由于其操作時的不便,其使用頻率也變的越來越少。
發(fā)明內(nèi)容本發(fā)明所要解決的技術問題是提供一種一種基于GUI的變頻器鍵盤及其控制方法,本發(fā)明的手動調(diào)節(jié)參數(shù)方便的鍵盤,調(diào)試人員可以快速而簡便的查找參數(shù),而且在鍵盤上能夠?qū)崿F(xiàn)示波器顯示,方便調(diào)試人員觀察參數(shù)的波動。本發(fā)明的顯示界面友好,高檔,能夠匹配中冶南方(武漢)自動化有限公司自主研發(fā)的高性能矢量變頻器。本發(fā)明所采用的技術方案是一種基于⑶I的變頻器鍵盤,其包括液晶芯片和ARM芯片,液晶芯片的數(shù)據(jù)信號端口均接至ARM芯片的特殊功能模塊控制端口。所述的鍵盤,數(shù)據(jù)信號端口包括片選、寫入數(shù)據(jù)、讀入片選信號端口,特殊功能模塊控制端口包括閃存外設片選區(qū)域控制端口、寫使能控制端口和輸出使能控制端口,它們依次相連。所述的鍵盤,數(shù)據(jù)信號端口還包括寄存器選擇信號端口,ARM芯片還包括數(shù)據(jù)總線端口,寄存器選擇信號端口接至數(shù)據(jù)總線端口。所述的鍵盤,液晶芯片內(nèi)設有存儲器,存儲器又包括控制寄存器和接收寄存器;液晶芯片控制顯示器。一種基于⑶I的變頻器鍵盤的控制方法,其包括通過ARM芯片控制液晶顯示器顯示參數(shù)、通過鍵盤輸入進行參數(shù)搜索,以及通過ARM芯片控制液晶顯示器顯示參數(shù)值或者示波器曲線的過程。所述的控制方法,ARM芯片控制液晶顯示器顯示參數(shù)的方法為首先移植⑶I函數(shù)庫到ARM芯片內(nèi),即根據(jù)硬件電路的特點,修改GUI與硬件電路相結合的底層驅(qū)動函數(shù),使得該底層驅(qū)動函數(shù)具有讀寫液晶芯片內(nèi)部存儲器的能力;然后GUI庫里面的GUI控制函數(shù)通過調(diào)用該底層驅(qū)動函數(shù)讀寫液晶芯片內(nèi)部存儲器,以實現(xiàn)在液晶上的參數(shù)圖片繪制。所述的控制方法,讀寫寄存器的控制過程為GUI控制函數(shù)訪問控制寄存器時,寄存器選擇信號端口發(fā)出低電平信號;GUI控制函數(shù)訪問接收存儲器時,寄存器選擇信號端口發(fā)出高電平信號。所述的控制方法,通過鍵盤輸入進行參數(shù)搜索的方法為將參數(shù)屬性表存儲在ARM芯片的內(nèi)部FLASH內(nèi),該表以2維數(shù)組的形式儲存,數(shù)組的每一行存儲一個參數(shù)的所有屬性;當需要查詢參數(shù)名時,通過輸入?yún)?shù)名,從數(shù)組中查到參數(shù)所在的行,從而得到該參數(shù)的所有屬性。所述的方法,液晶顯示器顯示示波器的方法為,通過GUI控制函數(shù)在液晶上繪制示波器,具體包括以下步驟Si)由⑶I控制函數(shù)中的畫線函數(shù)⑶I_DraWHLine(),繪制示波器里面的橫柵格和縱柵格;S2)由GUI控制函數(shù)中的繪圖函數(shù)⑶I_DrawGraph()實現(xiàn)繪制曲線。所述的方法,步驟S2曲線的繪制是通過繪制一系列連續(xù)的點來達到曲線的效果,具體包括以下步驟首先選取一個基準坐標,并通過一個數(shù)組aY來存放數(shù)據(jù),aY的長度即為曲線長度;每次本變頻器鍵盤與變頻器通信時,改變aY的第一個元素的值,并從數(shù)組中依次將數(shù)據(jù)向后挪移,直至aY的最后一個元素丟棄掉;最后將數(shù)組aY的每個元素的值,從基準坐標開始依次通過⑶I_DraWGraph()函數(shù)進行操作,這些操作均在存儲器內(nèi)執(zhí)行,只有在所有的操作執(zhí)行完畢后最終結果才輸出到屏幕上。本發(fā)明的優(yōu)點本鍵盤大大提高了調(diào)試人員查找參數(shù)的速度;而且把一些關鍵參數(shù)放在示波器上實時顯示,可以方便調(diào)試人員觀察參數(shù)運行時的波動。這是別的變頻器鍵盤都無法實現(xiàn)的。圖1是ARM與液晶之間的硬件接口。圖2是參數(shù)屬性存儲數(shù)組。圖3是繪制曲線方式。具體實施例方式本發(fā)明的鍵盤設計主要是要實現(xiàn)鍵盤控制液晶顯示以及鍵盤與下位機間的通信。液晶的顯示界面實現(xiàn)了三級顯示界面加開機界面。本發(fā)明通過移植GUI,利用GUI強大的畫圖功能,實現(xiàn)頁面顯示;本發(fā)明的通信采用485通信接口,與下位機傳輸數(shù)據(jù)。本發(fā)明實現(xiàn)了鍵盤控制變頻器以及顯示變頻器當前狀態(tài)的功能。本發(fā)明把GUI這樣一個嵌入式繪圖平臺移植到底層芯片中,實現(xiàn)了上位機界面與底層芯片的無縫結合。本發(fā)明利用GUI強大的繪圖功能來繪制鍵盤的顯示界面,并且在需要加快速度的刷屏的地方,采用純底層的對寄存器操作的方法,加快刷新速度。在界面容易抖動的位置,本發(fā)明采用GUI的存儲機制,防止圖層抖動。參數(shù)搜索方面,本發(fā)明采用一個2維數(shù)組來存儲所有參數(shù)的屬性,每一行代表一個參數(shù),每一列代表一個屬性;搜索參數(shù)時,根據(jù)參數(shù)的任何一個屬性,比如說參數(shù)編碼,可以通過尋址的方式查找到參數(shù)的所有屬性。本發(fā)明的硬件結構采用液晶顯示器加ARKAdvancedRISCMachines)0液晶的控制方式采用ARM芯片特殊功能模塊fsmc(靜態(tài)存儲器控制器)控制外部ROM(只讀存儲器)的方式。看原理圖如圖1,CS(片選)、WR(寫入數(shù)據(jù))、RD(讀入數(shù)據(jù))信號分別接FSMC_NE3(NOR閃存第三外設片選區(qū)域)、FSMC_NEff(寫使能)、FSMC_N0E(輸出使能),這幾個信號是在使用FSMC去讀寫某個外設的時候自動配置的。所以,軟件不用控制它。還有一個RS(寄存器選擇信號),是接在PG7(一個普通IO口)的,當程序訪問結構體的LCD_REG(液晶顯示器寄存器)時,RS=0。當程序訪問LCD_RAM(液晶顯示器隨機存儲控制器)時RS=1。這樣在編程的時候,除了軟件控制RS信號外,硬件可以自動控制時序,省略了底層軟件的時序部分。GUI函數(shù)庫里提供了GUI與硬件電路相結合的底層驅(qū)動函數(shù)。移植GUI(圖形用戶界面)的關鍵就是需要把GUI的寫寄存器的函數(shù)與底層函數(shù)聯(lián)系起來。ARM芯片的Reset(重置端口)與液晶顯示器的nReset端口相連。ARM芯片的FSMC_D0_15(數(shù)據(jù)存儲)與液晶顯示器的DB[15:0]端口相連。本發(fā)明采用⑶I通用C/C++庫函數(shù)。移植的過程包括配置文件修改和修改底層驅(qū)動函數(shù)。⑶I移植的主要工作就是修改LCD_Conf.h、⑶ICONF.h和⑶I_X.C三個配置文件。⑶ICONF.h、⑶I_X.C的移植比較簡單,下面主要介紹IXD配置文件LCD_Conf.h的移植#defineLCD_XSIZE(32O)/*定義液晶的參數(shù),320拉40*/#defineLCD_YSIZE(240)#defineLCD_FIXEDPALETTE(565)/*RGB565格式*/#defineLCD_SWAP_XY(1)/*交換顯示屏水平和垂直方向*/#defineLCD_INIT_C0NTR0LLER()ILI9325_Init();/*初始化LCD控制器*/也即,LCD_Conf.h文件內(nèi)存放有液晶大小參數(shù)320拉40,調(diào)色板顏色采用RGB565格式,顯示屏水平和垂直方向進行交換的開關參數(shù),以及LCD控制器初始化參數(shù)。本發(fā)明的液晶外掛在ARM的BANK3這個區(qū)域,而液晶的控制寄存器和接收寄存器存放在自己內(nèi)部RAM的前兩個地址。其中控制寄存器是索引寄存器,接收寄存器是數(shù)據(jù)寄存器??刂萍拇嫫鲀?nèi)存放有接收寄存器在RAM中的數(shù)據(jù)地址。因此,在編程的時候?qū)@個區(qū)域的首地址操作,就是對液晶的控制寄存器操作;往次地址寫數(shù),也就是往液晶的接收寄存器寫數(shù)??刂屏诉@兩個寄存器也就實現(xiàn)了對液晶的控制。由于ARM的BANK3的起始地址是0x68000000。發(fā)明里在這個地址定義一個固定地址的結構體,結構體里面的元素是兩個16位的無符號整形數(shù)。這樣結構體里面的兩個元素就可以分別代表控制寄存器和接收寄存器。具體實現(xiàn)方式如下Typedefstruct{vu16LCD_REG;vu16LCD_RAM;}LCD_TypeDef;#defineLCD_BASE((u32)(0x60000000|0x08000000))#defineLCD((LCD_TypeDef*)LCD_BASE)5上述程序定義了包含控制寄存器、接收寄存器內(nèi)容的結構體,以及ARM內(nèi)與液晶芯片的兩個寄存器相對應的基地址IXD。操作時,液晶通過寫寄存器,實現(xiàn)對液晶的控制,如下voidLCD_ffriteReg(u8LCD_Reg,u8LCD_RegValue){GPIO_ResetBits(GP10G,GPI0_Pin_7);//設置RS信號為低LCD->LCD_REG=LCD_Reg;//寫入控制寄存器的值GPI0_SetBits(GP10G,GPI0_Pin_7)//設置RS信號為高LCD->LCD_RAM=LCD_RegValue;//寫入接收寄存器的值}GUI別的函數(shù)都是通過這個寫寄存器函數(shù)來實現(xiàn)的,比如GUI的畫點函數(shù)就是voidGUI_DrawPoint(u8LCD_RegValue){LCD_WriteReg(0x22,u8LCD_RegValue);}GUI的定標函數(shù)就是viodLCD_SetCursor(u8Xpos,ul6Ypos)LCD_WriteReg(0x20,Xpos);LCD_WriteReg(0x21,Ypos);}這樣畫線函數(shù),畫圖函數(shù)都可以衍生出來。本發(fā)明提供了一種快速搜索參數(shù)的方式。可以直接通過輸入?yún)?shù)編碼來查詢參數(shù)。具體做法是把參數(shù)編碼以及該參數(shù)的屬性都存在一個固定數(shù)組的固定位。當通過按鍵判斷出輸入的數(shù)值后,便用這個數(shù)值來與數(shù)組中存放參數(shù)編碼的這一位來進行比較,如果得到相等的值則結束循環(huán),找到當前編碼以及它的信息存放在數(shù)組中的位置。然后再在數(shù)組中調(diào)用這個編碼的所有信息,用于顯示和發(fā)送。如圖2上表可以記錄在一個2維數(shù)組table[][9]里面。數(shù)組的每一行存儲一個參數(shù)的所有屬性,一共有多少行就代表有多少個參數(shù)。在程序里如果要調(diào)用參數(shù)信息,只要知道參數(shù)所屬哪一行即可。比如說當前參數(shù)編碼是對0,我想知道這個參數(shù)是什么參數(shù)(參數(shù)文字)。Datasite代表當前參數(shù)在數(shù)組中的行坐標。for(i=0;i<1000;i++){if(tabler[i][2]==240){Datasite=i;break;ιι通過上面一段簡短的程序可以很快的通過參數(shù)編碼查詢到參數(shù)所處的位置,進而查找到該參數(shù)的全部屬性。這就實現(xiàn)了一個功能通過參數(shù)編碼來搜索參數(shù),而不用通過傳統(tǒng)的翻頁來找參數(shù)。本發(fā)明提供了一種顯示示波器的方法。通過⑶I強大的畫圖功能,⑶1_DrawGraphO函數(shù)可以實時的繪制曲線。具體繪制方法是先通過畫線和寫字的函數(shù)畫出示波器的邊線和坐標點,以及外圍框架。示波器里面作為一個動態(tài)的畫面實時刷新。刷新畫面時分兩步,第一步先畫示波器里面的橫柵格和縱柵格。這個由GUI提供的畫線函數(shù)⑶I_DrawHLine()來實現(xiàn)。第二步繪制曲線。繪制曲線由⑶I_DrawGraph()函數(shù)來實現(xiàn)。它是通過繪制一系列連續(xù)的點來達到曲線的效果。首先需要選取一個基準坐標(xO,y0),還需要有一個數(shù)組aY[300]來存放數(shù)據(jù)。aY的長度有多長代表GUI_DrawGraph()函數(shù)可以畫多長的曲線。如圖3,假設aY[300]={1,2,3,4,5,6,7……},aY[]中的元素代表所繪制曲線的縱坐標,橫坐標從基準點的橫坐標開始連續(xù)的向右延伸。aY[]中有多少個元素,所繪制曲線的橫坐標就有多少個點。在程序中aY[]里面的數(shù)由RS-485通信提供。aY[]里面一共有240個數(shù),也就是曲線一共有240個點,每次通信,aYW]的值都會改變,依次把數(shù)據(jù)向后擠,直到aY[239]的值給丟掉。通信一次,示波器畫面也跟著刷新一次,給人一個變動的畫面效果。第一步和第二步如果按次序執(zhí)行的話,由于疊加效應,會引起圖層閃爍。所以在這里又用到GUI的特殊功能存儲機制。沒有使用存儲設備時,繪圖操作直接寫屏。屏幕在繪圖操作在執(zhí)行時更新,當不同的更新在執(zhí)行時會產(chǎn)生閃爍。如果這樣的操作使用一個存儲設備的話,所有的操作在存儲設備內(nèi)執(zhí)行。只有在所有的操作執(zhí)行完畢后最終結果才顯示在屏幕上,具有無閃爍的優(yōu)點。⑶I描繪示波器的一個應用實例ARM芯片采用stm32fl03ZE,液晶芯片采用ILI9325。通過液晶顯示U相電流的波形,U相電流作為一個功能碼,它的參數(shù)編碼為200。鍵盤通過實時的通信,從變頻器控制板讀取P0200這個參數(shù)的值,進而在液晶上顯示。在鍵盤里,通過定時器2的中斷函數(shù)來記時,每隔0.IS向下位機發(fā)送一次數(shù)據(jù),用于讀取P0200的值(U相電流值)。每次接收到數(shù)據(jù)后,再接收中斷函數(shù)里寫aY[]數(shù)組,并且推擠這個數(shù)組,把數(shù)組的最后一個數(shù)據(jù)去掉。然后把數(shù)組里面的數(shù)據(jù)放到示波器里顯示。由于是0.IS數(shù)據(jù)更新一次,給人造成一個連續(xù)的動畫。1.主程序主要實現(xiàn)寄存器初始化配置,以及主循環(huán)函數(shù)intmain()System—init();⑶IJnitO;GUI_MEMDEV_load()/和ARM相關的硬件初始化/GUI初始化while(1){}}2.定時器中斷子程序,用于每隔0.IS發(fā)送讀取參數(shù)值命令voidTIM2_IRQHandler(void){if(TIM_GetITStatus(TIM2,TIM_IT_CC1)!=RESET){TIM_ClearITPendingBit(TIM2,TIM_IT_CC1);//清中斷標志位V_RxTx_Time++;//通信記時器if(V_RxTx_Time>=300)//記時0.IS到{V_RxTx_Time=0;USART_SendData(USART3,200);//讀取編碼為200的參數(shù)值IU}}}3.通信接收處理函數(shù)在接收到參數(shù)值后用于繪制曲線voidNew_Recevie_Comd(){if(Table[Lin][5]==200)//如果當接收到的數(shù)的參數(shù)編碼為200;{aY=PKK[200];//數(shù)組首位接收通信值for(i=l;i<300;i++)//擠壓數(shù)組,丟掉最后一位{aY[300-i]=ay[299-i];}GUI_MEMDEV_DRAff(&Rect,&DrawPicture,0,0,0);//畫示波器}}4.回調(diào)函數(shù)的編寫,它以參數(shù)的形式被主函數(shù)調(diào)用。在本程序里,回調(diào)函數(shù)的編寫流程是首先對黑色矩形框進行清屏,然后繪制灰色網(wǎng)格,最后調(diào)用GUI_DrawGraph()繪制曲線。權利要求1.一種基于⑶I的變頻器鍵盤,其特征在于其包括液晶芯片和ARM芯片,液晶芯片的數(shù)據(jù)信號端口均接至ARM芯片的特殊功能模塊控制端口。2.根據(jù)權利要求1所述的鍵盤,其特征在于數(shù)據(jù)信號端口包括片選、寫入數(shù)據(jù)、讀入片選信號端口,特殊功能模塊控制端口包括閃存外設片選區(qū)域控制端口、寫使能控制端口和輸出使能控制端口,它們依次相連。3.根據(jù)權利要求1所述的鍵盤,其特征在于數(shù)據(jù)信號端口還包括寄存器選擇信號端口,ARM芯片還包括數(shù)據(jù)總線端口,寄存器選擇信號端口接至數(shù)據(jù)總線端口。4.根據(jù)權利要求1所述的鍵盤,其特征在于液晶芯片內(nèi)設有存儲器,存儲器又包括控制寄存器和接收寄存器;液晶芯片控制顯示器。5.一種基于GUI的變頻器鍵盤的控制方法,其特征在于其包括通過ARM芯片控制液晶顯示器顯示參數(shù)、通過鍵盤輸入進行參數(shù)搜索,以及通過ARM芯片控制液晶顯示器顯示參數(shù)值或者示波器曲線的過程。6.根據(jù)權利要求5所述的控制方法,其特征在于,ARM芯片控制液晶顯示器顯示參數(shù)的方法為首先移植GUI函數(shù)庫到ARM芯片內(nèi),即根據(jù)硬件電路的特點,修改GUI與硬件電路相結合的底層驅(qū)動函數(shù),使得該底層驅(qū)動函數(shù)具有讀寫液晶芯片內(nèi)部存儲器的能力;然后⑶I庫里面的⑶I控制函數(shù)通過調(diào)用該底層驅(qū)動函數(shù)讀寫液晶芯片內(nèi)部存儲器,以實現(xiàn)在液晶上的參數(shù)圖片繪制。7.跟權利要求6所述的控制方法,其特征在于,讀寫寄存器的控制過程為GUI控制函數(shù)訪問控制寄存器時,寄存器選擇信號端口發(fā)出低電平信號;GUI控制函數(shù)訪問接收存儲器時,寄存器選擇信號端口發(fā)出高電平信號。8.根據(jù)權利要求6所述的控制方法,其特征在于,通過鍵盤輸入進行參數(shù)搜索的方法為將參數(shù)屬性表存儲在ARM芯片的內(nèi)部FLASH內(nèi),該表以2維數(shù)組的形式儲存,數(shù)組的每一行存儲一個參數(shù)的所有屬性;當需要查詢參數(shù)名時,通過輸入?yún)?shù)名,從數(shù)組中查到參數(shù)所在的行,從而得到該參數(shù)的所有屬性。9.根據(jù)權利要求5所述的方法,其特征在于,液晶顯示器顯示示波器的方法為,通過GUI控制函數(shù)在液晶上繪制示波器,具體包括以下步驟51)由⑶I控制函數(shù)中的畫線函數(shù)⑶I_DrawHLine(),繪制示波器里面的橫柵格和縱柵格;52)由⑶I控制函數(shù)中的繪圖函數(shù)⑶I_DrawGraph()實現(xiàn)繪制曲線。10.根據(jù)權利要求9所述的方法,其特征在于,步驟S2曲線的繪制是通過繪制一系列連續(xù)的點來達到曲線的效果,具體包括以下步驟首先選取一個基準坐標,并通過一個數(shù)組aY來存放數(shù)據(jù),aY的長度即為曲線長度;每次本變頻器鍵盤與變頻器通信時,改變aY的第一個元素的值,并從數(shù)組中依次將數(shù)據(jù)向后挪移,直至aY的最后一個元素丟棄掉;最后將數(shù)組aY的每個元素的值,從基準坐標開始依次通過⑶I_DrawGraph()函數(shù)進行操作,這些操作均在存儲器內(nèi)執(zhí)行,只有在所有的操作執(zhí)行完畢后最終結果才輸出到屏幕上。全文摘要本發(fā)明提供了一種基于GUI的變頻器鍵盤及其控制方法,本發(fā)明的鍵盤系統(tǒng)包括液晶芯片和ARM芯片,液晶芯片的數(shù)據(jù)信號端口均接至ARM芯片的特殊功能模塊控制端口。本發(fā)明的控制方法包括通過ARM芯片控制液晶顯示器顯示參數(shù)、通過鍵盤輸入進行參數(shù)搜索,以及通過ARM芯片控制液晶顯示器顯示參數(shù)值或者示波器曲線的過程。本發(fā)明大大提高了調(diào)試人員查找參數(shù)的速度;而且把一些關鍵參數(shù)放在示波器上實時顯示,可以方便調(diào)試人員觀察參數(shù)運行時的波動。這是別的變頻器鍵盤都無法實現(xiàn)的。文檔編號G06F9/44GK102368175SQ20111027481公開日2012年3月7日申請日期2011年9月16日優(yōu)先權日2011年9月16日發(fā)明者徐暉,李鵬申請人:中冶南方(武漢)自動化有限公司