一种利用MCU内部Flash存储KVM通道信息的方法与流程

文档序号:11250807阅读:1220来源:国知局
一种利用MCU内部Flash存储KVM通道信息的方法与流程

本发明公开一种存储kvm通道信息的方法,涉及kvm设计领域,具体地说是一种利用mcu内部flash存储kvm通道信息的方法。



背景技术:

mcu本质为一片单片机,指将计算机的cpu、ram、rom、定时计数器和多种i/o接口集成在一片芯片上,形成的芯片级的计算机。kvm,keyboardvideomouse,是键盘(keyboard)、显示器(video)、鼠标(mouse)的缩写。kvm技术通过适当的键盘、鼠标、显示器的配置,实现系统和网络的集中管理;提高系统的可管理性,提高系统管理员的工作效率;节约机房的面积,降低网络工程和服务器系统的总体拥有成本;避免使用多显示器产生的辐射,营建健康环保的机房。利用kvm多主机切换系统,系统管理员可以通过一套键盘、鼠标、显示器在多个不同操作系统的主机或服务器之间进行切换并实施管理。目前模拟kvm提供独立于网络的即插即用系统,适用于用户和主机处于同一空间中。通常用户要求kvm关机后要保存上次连接的主机通道,所以一般需要在mcu外围连接一个单独的flash芯片用于存储kvm通道信息。

但在mcu外围连接一个单独的flash芯片用于存储kvm通道信息,使硬件电路设计偏复杂化,而且flash芯片作为存储器时,在进行重新编程之前,一般要将数据字节擦除,使用比较麻烦,而本发明提供一种利用mcu内部flash存储kvm通道信息的方法,利用单片机自带的flash存储器存储kvm历史通道信息,可以简化硬件电路设计,并减少flash芯片的使用,节约成本的同时,使用也较简便。



技术实现要素:

本发明针对现有技术存在的不足和问题,提供一种利用mcu内部flash存储kvm通道信息的方法,本发明提出的具体方案是:

一种利用mcu内部flash存储kvm通道信息的方法,利用mcu控制程序在flash相应存储操作之前对flash进行解锁,清除flash数据位,擦除待编程的地址,写入需要存储的kvm通道信息数据。

所述对flash进行解锁是指mcu控制程序按顺序向flash关键码寄存器写入正确的关键码。

所述清除flash数据位,擦除待编程的地址是指以flash扇区为单位,将扇区内所有字节置为0xff。

所述写入需要存储的kvm通道信息数据是指在清除flash数据位,擦除待编程的地址后,向flash的目的地址以字节的方式写入数据。

一种利用mcu内部flash存储kvm通道信息的系统,包括控制模块、解锁模块、擦除模块、写入模块,

控制模块用于mcu控制flash进行操作,

解锁模块用于mcu控制flash相应存储操作之前在控制模块中进行解锁,

擦除模块用于flash清除数据位,擦除待编程的地址,

写入模块用于flash写入kvm通道信息的数据。

所述解锁模块采用解锁函数,按顺序向flash关键码寄存器写入正确的关键码进行解锁。

所述擦除模块采用擦除函数以flash扇区为单位,将扇区内所有字节置为0xff。

所述写入模块采用写入函数向flash的目的地址以字节的方式写入数据。

本发明的有益之处是:

本发明提供一种利用mcu内部flash存储kvm通道信息的方法,利用mcu控制程序在flash相应存储操作之前对flash进行解锁,清除flash数据位,擦除待编程的地址,写入需要存储的kvm通道信息数据;本发明利用软件模块对单片机自带的flash存储器进行控制,使其在kvm发生通道切换后保存切换后的通道信息,而不在需要在mcu外围连接一个单独的flash芯片用于存储kvm通道信息,因此简化硬件电路设计,并减少flash芯片的使用,节约了成本。

附图说明

图1本发明擦除过程流程示意图,

图2本发明写入过程流程示意图。

具体实施方式

本发明提供一种利用mcu内部flash存储kvm通道信息的方法,利用mcu控制程序在flash相应存储操作之前对flash进行解锁,清除flash数据位,擦除待编程的地址,写入需要存储的kvm通道信息数据。

同时提供一种利用mcu内部flash存储kvm通道信息的系统,包括控制模块、解锁模块、擦除模块、写入模块,

控制模块用于mcu控制flash进行操作,

解锁模块用于mcu控制flash相应存储操作之前在控制模块中进行解锁,

擦除模块用于flash清除数据位,擦除待编程的地址,

写入模块用于flash写入kvm通道信息的数据。

结合附图及具体实施方式,进一步解释说明本发明的技术方案。

以siliconlabs公司推出的c8051f340单片机为例,c8051f340单片机集成usb功能控制器,并有丰富的gpio口资源,可用于连接标准矩阵键盘接口和模拟ps2接口。其内部有可再编程的flash存储器,可以通过软件使用movx指令对存储器进行编程。

利用本发明方法,c8051f340单片机控制程序在flash相应存储操作之前对flash进行解锁,其中写入和擦除flash受flash锁定和关键码功能的保护,对flash进行解锁就是mcu控制程序按顺序向flash关键码寄存器写入正确的关键码,关键码为:0xa5,0xf1,每次flash写入和擦除操作之后,flash锁定功能复位;在进行下一次flash写入或擦除操作之前,必须重新写入关键码。

以flash的512字节的扇区为单位,将扇区内所有字节置为0xff,即一次擦除操作将擦除整个扇区,达到清除flash数据位,擦除待编程的地址的目的,步骤为:

禁止中断,

写关键字0xa5,

写关键字0xf1,

置psee位,允许flash擦除,

置pswe位,允许flash写入,

向页内任意位置写一个数据字节

清除pswe位。

在写入需要存储的kvm通道信息数据是指在清除flash数据位,擦除待编程的地址后,向flash的目的地址以字节的方式写入数据,其中flash存储器一次写一个字节,也可以一次写两个字节,以单字节为例,字节数据是分别写入的,每个movx写指令执行一次flash写操作,单字节写入flash步骤为:

禁止中断,

清除flbwe位,选择单字节方式,

置pswe位,

清除psee位,

写关键字0xa5,

写关键字0xa5,

向目的地址写数据,

清楚pswe位,

重新使能中断,

重复写入步骤,直至写完。

上述利用本发明方法的同时,本发明系统也可实施上述应用,c8051f340单片机利用本发明解锁模块在flash相应存储操作之前对flash进行解锁,其中写入和擦除flash受flash锁定和关键码功能的保护,解锁模块对flash进行解锁就是按顺序向flash关键码寄存器写入正确的关键码,关键码为:0xa5,0xf1,每次flash写入和擦除操作之后,flash锁定功能复位;在进行下一次flash写入或擦除操作之前,必须重新写入关键码,解锁模块可以利用解锁函数如intflashunlock(void)进行解锁操作,

擦除模块以flash的512字节的扇区为单位,将扇区内所有字节置为0xff,即一次擦除操作将擦除整个扇区,达到清除flash数据位,擦除待编程的地址的目的,步骤为:

禁止中断,

写关键字0xa5,

写关键字0xf1,

置psee位,允许flash擦除,

置pswe位,允许flash写入,

向页内任意位置写一个数据字节

清除pswe位;其中擦除模块可以利用擦除函数如voidflasherase(void)进行擦除操作,

在清除flash数据位,擦除待编程的地址后,写入模块写入需要存储的kvm通道信息数据,即向flash的目的地址以字节的方式写入数据,其中flash存储器一次写一个字节,也可以一次写两个字节,以单字节为例,字节数据是分别写入的,每个movx写指令执行一次flash写操作,单字节写入flash步骤为:

禁止中断,

清除flbwe位,选择单字节方式,

置pswe位,

清除psee位,

写关键字0xa5,

写关键字0xa5,

向目的地址写数据,

清楚pswe位,

重新使能中断,

重复写入步骤,直至写完。写入模块可以利用写入函数如voidflashwrite(void)进行写入操作。

上述实施例中,本发明利用c8051f340自带的flash存储器存储kvm历史通道信息,可以简化硬件电路设计,并减少flash芯片的使用,节约成本。当然在不脱离本发明技术方案的前提下,也可以根据其他实际情况选择其他mcu及系统模块或函数来实现本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1