本發(fā)明公開一種存儲kvm通道信息的方法,涉及kvm設計領域,具體地說是一種利用mcu內部flash存儲kvm通道信息的方法。
背景技術:
mcu本質為一片單片機,指將計算機的cpu、ram、rom、定時計數器和多種i/o接口集成在一片芯片上,形成的芯片級的計算機。kvm,keyboardvideomouse,是鍵盤(keyboard)、顯示器(video)、鼠標(mouse)的縮寫。kvm技術通過適當的鍵盤、鼠標、顯示器的配置,實現系統和網絡的集中管理;提高系統的可管理性,提高系統管理員的工作效率;節(jié)約機房的面積,降低網絡工程和服務器系統的總體擁有成本;避免使用多顯示器產生的輻射,營建健康環(huán)保的機房。利用kvm多主機切換系統,系統管理員可以通過一套鍵盤、鼠標、顯示器在多個不同操作系統的主機或服務器之間進行切換并實施管理。目前模擬kvm提供獨立于網絡的即插即用系統,適用于用戶和主機處于同一空間中。通常用戶要求kvm關機后要保存上次連接的主機通道,所以一般需要在mcu外圍連接一個單獨的flash芯片用于存儲kvm通道信息。
但在mcu外圍連接一個單獨的flash芯片用于存儲kvm通道信息,使硬件電路設計偏復雜化,而且flash芯片作為存儲器時,在進行重新編程之前,一般要將數據字節(jié)擦除,使用比較麻煩,而本發(fā)明提供一種利用mcu內部flash存儲kvm通道信息的方法,利用單片機自帶的flash存儲器存儲kvm歷史通道信息,可以簡化硬件電路設計,并減少flash芯片的使用,節(jié)約成本的同時,使用也較簡便。
技術實現要素:
本發(fā)明針對現有技術存在的不足和問題,提供一種利用mcu內部flash存儲kvm通道信息的方法,本發(fā)明提出的具體方案是:
一種利用mcu內部flash存儲kvm通道信息的方法,利用mcu控制程序在flash相應存儲操作之前對flash進行解鎖,清除flash數據位,擦除待編程的地址,寫入需要存儲的kvm通道信息數據。
所述對flash進行解鎖是指mcu控制程序按順序向flash關鍵碼寄存器寫入正確的關鍵碼。
所述清除flash數據位,擦除待編程的地址是指以flash扇區(qū)為單位,將扇區(qū)內所有字節(jié)置為0xff。
所述寫入需要存儲的kvm通道信息數據是指在清除flash數據位,擦除待編程的地址后,向flash的目的地址以字節(jié)的方式寫入數據。
一種利用mcu內部flash存儲kvm通道信息的系統,包括控制模塊、解鎖模塊、擦除模塊、寫入模塊,
控制模塊用于mcu控制flash進行操作,
解鎖模塊用于mcu控制flash相應存儲操作之前在控制模塊中進行解鎖,
擦除模塊用于flash清除數據位,擦除待編程的地址,
寫入模塊用于flash寫入kvm通道信息的數據。
所述解鎖模塊采用解鎖函數,按順序向flash關鍵碼寄存器寫入正確的關鍵碼進行解鎖。
所述擦除模塊采用擦除函數以flash扇區(qū)為單位,將扇區(qū)內所有字節(jié)置為0xff。
所述寫入模塊采用寫入函數向flash的目的地址以字節(jié)的方式寫入數據。
本發(fā)明的有益之處是:
本發(fā)明提供一種利用mcu內部flash存儲kvm通道信息的方法,利用mcu控制程序在flash相應存儲操作之前對flash進行解鎖,清除flash數據位,擦除待編程的地址,寫入需要存儲的kvm通道信息數據;本發(fā)明利用軟件模塊對單片機自帶的flash存儲器進行控制,使其在kvm發(fā)生通道切換后保存切換后的通道信息,而不在需要在mcu外圍連接一個單獨的flash芯片用于存儲kvm通道信息,因此簡化硬件電路設計,并減少flash芯片的使用,節(jié)約了成本。
附圖說明
圖1本發(fā)明擦除過程流程示意圖,
圖2本發(fā)明寫入過程流程示意圖。
具體實施方式
本發(fā)明提供一種利用mcu內部flash存儲kvm通道信息的方法,利用mcu控制程序在flash相應存儲操作之前對flash進行解鎖,清除flash數據位,擦除待編程的地址,寫入需要存儲的kvm通道信息數據。
同時提供一種利用mcu內部flash存儲kvm通道信息的系統,包括控制模塊、解鎖模塊、擦除模塊、寫入模塊,
控制模塊用于mcu控制flash進行操作,
解鎖模塊用于mcu控制flash相應存儲操作之前在控制模塊中進行解鎖,
擦除模塊用于flash清除數據位,擦除待編程的地址,
寫入模塊用于flash寫入kvm通道信息的數據。
結合附圖及具體實施方式,進一步解釋說明本發(fā)明的技術方案。
以siliconlabs公司推出的c8051f340單片機為例,c8051f340單片機集成usb功能控制器,并有豐富的gpio口資源,可用于連接標準矩陣鍵盤接口和模擬ps2接口。其內部有可再編程的flash存儲器,可以通過軟件使用movx指令對存儲器進行編程。
利用本發(fā)明方法,c8051f340單片機控制程序在flash相應存儲操作之前對flash進行解鎖,其中寫入和擦除flash受flash鎖定和關鍵碼功能的保護,對flash進行解鎖就是mcu控制程序按順序向flash關鍵碼寄存器寫入正確的關鍵碼,關鍵碼為:0xa5,0xf1,每次flash寫入和擦除操作之后,flash鎖定功能復位;在進行下一次flash寫入或擦除操作之前,必須重新寫入關鍵碼。
以flash的512字節(jié)的扇區(qū)為單位,將扇區(qū)內所有字節(jié)置為0xff,即一次擦除操作將擦除整個扇區(qū),達到清除flash數據位,擦除待編程的地址的目的,步驟為:
禁止中斷,
寫關鍵字0xa5,
寫關鍵字0xf1,
置psee位,允許flash擦除,
置pswe位,允許flash寫入,
向頁內任意位置寫一個數據字節(jié)
清除pswe位。
在寫入需要存儲的kvm通道信息數據是指在清除flash數據位,擦除待編程的地址后,向flash的目的地址以字節(jié)的方式寫入數據,其中flash存儲器一次寫一個字節(jié),也可以一次寫兩個字節(jié),以單字節(jié)為例,字節(jié)數據是分別寫入的,每個movx寫指令執(zhí)行一次flash寫操作,單字節(jié)寫入flash步驟為:
禁止中斷,
清除flbwe位,選擇單字節(jié)方式,
置pswe位,
清除psee位,
寫關鍵字0xa5,
寫關鍵字0xa5,
向目的地址寫數據,
清楚pswe位,
重新使能中斷,
重復寫入步驟,直至寫完。
上述利用本發(fā)明方法的同時,本發(fā)明系統也可實施上述應用,c8051f340單片機利用本發(fā)明解鎖模塊在flash相應存儲操作之前對flash進行解鎖,其中寫入和擦除flash受flash鎖定和關鍵碼功能的保護,解鎖模塊對flash進行解鎖就是按順序向flash關鍵碼寄存器寫入正確的關鍵碼,關鍵碼為:0xa5,0xf1,每次flash寫入和擦除操作之后,flash鎖定功能復位;在進行下一次flash寫入或擦除操作之前,必須重新寫入關鍵碼,解鎖模塊可以利用解鎖函數如intflashunlock(void)進行解鎖操作,
擦除模塊以flash的512字節(jié)的扇區(qū)為單位,將扇區(qū)內所有字節(jié)置為0xff,即一次擦除操作將擦除整個扇區(qū),達到清除flash數據位,擦除待編程的地址的目的,步驟為:
禁止中斷,
寫關鍵字0xa5,
寫關鍵字0xf1,
置psee位,允許flash擦除,
置pswe位,允許flash寫入,
向頁內任意位置寫一個數據字節(jié)
清除pswe位;其中擦除模塊可以利用擦除函數如voidflasherase(void)進行擦除操作,
在清除flash數據位,擦除待編程的地址后,寫入模塊寫入需要存儲的kvm通道信息數據,即向flash的目的地址以字節(jié)的方式寫入數據,其中flash存儲器一次寫一個字節(jié),也可以一次寫兩個字節(jié),以單字節(jié)為例,字節(jié)數據是分別寫入的,每個movx寫指令執(zhí)行一次flash寫操作,單字節(jié)寫入flash步驟為:
禁止中斷,
清除flbwe位,選擇單字節(jié)方式,
置pswe位,
清除psee位,
寫關鍵字0xa5,
寫關鍵字0xa5,
向目的地址寫數據,
清楚pswe位,
重新使能中斷,
重復寫入步驟,直至寫完。寫入模塊可以利用寫入函數如voidflashwrite(void)進行寫入操作。
上述實施例中,本發(fā)明利用c8051f340自帶的flash存儲器存儲kvm歷史通道信息,可以簡化硬件電路設計,并減少flash芯片的使用,節(jié)約成本。當然在不脫離本發(fā)明技術方案的前提下,也可以根據其他實際情況選擇其他mcu及系統模塊或函數來實現本發(fā)明。