基于GPIO接口的LPC外设扩展方法及装置制造方法及图纸

技术编号:10213022 阅读:349 留言:0更新日期:2014-07-12 22:05
本发明专利技术公开了一种基于GPIO接口的LPC外设扩展方法及装置,方法包括基于双向异步请求-应答握手协议与CPU的GPIO接口进行第一级通讯,将收到报文通过第二级同步握手协议转发给下级的LPC外设或者对内部寄存器及中断操作,如果收到LPC外设的串行中断请求或内部中断请求,则反向向CPU的GPIO接口发起中断请求;装置包括GPIO与LPC接口模块、LPC总线协议控制模块和LPC串行中断控制模块,GPIO与LPC接口模块与CPU相连。本发明专利技术具有扩展简单灵活、方便系统扩展、通讯与具体时钟无关、对GPIO口时钟没有特殊要求、通讯数据可靠、节省硬件资源、对于上层使用者透明的优点。

【技术实现步骤摘要】
基于GPIO接口的LPC外设扩展方法及装置
本专利技术涉及嵌入式系统的外设扩展
,具体涉及一种基于GPIO接口的LPC外设扩展方法及装置。
技术介绍
目前微处理器设计中,有些处理器如THG26R)7BD设计有LPC协议接口,该接口为符合LPC协议规范的同步接口时序要求,则可以直接使用。然而,很多其它的微处理器没有设计LPC接口,使得在系统中LPC接口将不能应用。目前,现有处理器大部分具有GPIO接口,但是却无法通过GPIO接口直接使用LPC设备。这是由于GPIO接口无法与LPC设备间完成有效的时钟同步通讯,即使GPIO接口操作按照额定周期规定时间内执行有效的命令也无法总是满足与LPC设备间建立时间和保持时间要求。而且,在现代嵌入式系统中,许多微处理器并没有LPC HOST控制器接口。然而,由于LPC协议可以通过很少的信号线连接多种设备(superio、嵌入式控制器等),允许一个系统中没有X_bus或者ISA,同时其相对于传统的X-bus可以有效的降低成本。其相对于X-bus协议memory空间由16M增加到4G,其他设备内存空间也不受16M约束;其设备类型firmware memory类型可以有效地支持BIOS。由于LPC接口协议具有接口信号数目少和能够满足多种外设的需求等优势,使得LPC HST控制器的需求日益凸显。然而,目前许多系统通过南桥的较复杂的接口才能使其在系统中得到应用。因此,如何基于GPIO接口的LPC外设扩展,已经称为一项亟待解决的关键技术问题。
技术实现思路
本专利技术要解决的技术问题是提供一种扩展简单灵活、方便系统扩展、通讯与具体时钟无关、对GPIO 口时钟没有特殊要求、通讯数据可靠、节省硬件资源、对于上层使用者透明的基于GPIO接口的LPC外设扩展方法及装置。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于GPIO接口的LPC外设扩展方法,其实施步骤如下:I)基于双向异步请求-应答握手协议通过多次握手传输接收CPU通过GPIO接口发起的报文请求,所述报文请求的可选字段信息包括报文头、地址、数据三种信息,所述报文请求的类型包括DMA读、DMA写、LPC设备读请求、LPC设备写请求,且其中类型为DMA读或LPC设备写请求的报文请求只含有报文头和地址信息而不含有数据信息,类型为DMA读和DMA写的报文请求的地址信息为DMA通道号;解析报文请求,根据报文请求的报文头判断其发送目标,如果发送目标为LPC外设,则将报文请求转换为LPC总线协议相关请求并基于同步握手协议将报文请求输出,跳转执行步骤2);否则基于同步握手协议将报文请求输出,跳转执行步骤3);同时,判断是否收到发往GPIO接口的报文请求,如果收到发往GPIO接口的报文请求或者中断请求,则将收到的报文请求基于双向异步请求-应答握手协议通过多次握手传输发送给CPU的GPIO接口;2)接收报文请求,根据接收到报文请求中携带的设备类型和地址、数据及数据大小将相应的报文请求按照LPC协议向下发送给指定的LPC外设;同时,遵循LPC协议检测LPC总线上由LPC外设发送的数据,如果在LPC总线上读取到LPC外设发送的数据,则将LPC外设发送的数据基于同步握手协议发送作为发往CPU的GPIO接口的报文请求;3)接收报文请求,根据收到的报文请求执行对内置寄存器的操作,所述内置寄存器包括长等待超时控制寄存器、中断状态寄存器、清除中断寄存器、中断屏蔽寄存器、配置寄存器,针对CPU而言中断状态寄存器为读寄存器,清除中断寄存器为写寄存器,长等待超时控制寄存器、中断屏蔽寄存器、配置寄存器三者均为读写寄存器,所述长等待超时控制寄存器用于实现与CPU之间发送中断请求的超时控制,所述中断状态寄存器用于记录当前中断请求状态,所述当前中断请求状态可为数据读、串行中断请求和外设DMA请求三者之一,所述中断屏蔽寄存器用于记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,所述配置寄存器用于记录数据读、串行中断请求和外设DMA请求三者的模式配置信息;所述对内置寄存器的操作包括对配置寄存器、中断屏蔽寄存器、清除中断寄存器三者的操作;同时根据中断屏蔽寄存器判断记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,如果状态为使能,则根据是否需要向CPU返回读数据、是否收到LPC外设的串行中断请求、是否收到LPC外设的外设DMA请求来写中断状态寄存器,并根据写中断状态寄存器的状态来决定是否向CPU的GPIO接口发送中断请求,如果需要向CPU的GPIO接口发送中断请求,则基于同步握手协议将向CPU的GPIO接口发送中断请求。本专利技术还提供一种基于GPIO接口的LPC外设扩展装置,包括:GPIO与LPC接口模块,用于基于双向异步请求-应答握手协议通过多次握手传输接收CPU通过GPIO接口发起的报文请求,所述报文请求的可选字段信息包括报文头、地址、数据三种信息,所述报文请求的类型包括DMA读、DMA写、LPC设备读请求、LPC设备写请求,且其中类型为DMA读或LPC设备写请求的报文请求只含有报文头和地址信息而不含有数据信息,类型为DMA读和DMA写的报文请求的地址信息为DMA通道号;解析报文请求,根据报文请求的报文头判断其发送目标,如果发送目标为LPC外设,则将报文请求转换为LPC总线协议相关请求并基于同步握手协议将报文请求输出给LPC总线协议控制模块;否则基于同步握手协议将报文请求输出给LPC串行中断控制模块;同时,判断是否收到发往GPIO接口的报文请求,如果收到发往GPIO接口的报文请求或者中断请求,则将收到的报文请求基于双向异步请求-应答握手协议通过多次握手传输发送给CPU的GPIO接口 ;LPC总线协议控制模块,用于接收报文请求,根据接收到报文请求中携带的设备类型和地址、数据及数据大小将相应的报文请求按照LPC协议向下发送给指定的LPC外设;同时,遵循LPC协议检测LPC总线上由LPC外设发送的数据,如果在LPC总线上读取到LPC外设发送的数据,则将LPC外设发送的数据基于同步握手协议发送作为发往CPU的GPIO接口的报文请求;LPC串行中断控制模块,用于接收报文请求,根据收到的报文请求执行对内置寄存器的操作,所述内置寄存器包括长等待超时控制寄存器、中断状态寄存器、清除中断寄存器、中断屏蔽寄存器、配置寄存器,针对CPU而言中断状态寄存器为读寄存器,清除中断寄存器为写寄存器,长等待超时控制寄存器、中断屏蔽寄存器、配置寄存器三者均为读写寄存器,所述长等待超时控制寄存器用于实现与CPU之间发送中断请求的超时控制,所述中断状态寄存器用于记录当前中断请求状态,所述当前中断请求状态可为数据读、串行中断请求和外设DMA请求三者之一,所述中断屏蔽寄存器用于记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,所述配置寄存器用于记录数据读、串行中断请求和外设DMA请求三者的模式配置信息;所述对内置寄存器的操作包括对配置寄存器、中断屏蔽寄存器、清除中断寄存器三者的操作;同时根据中断屏蔽寄存器判断记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,如果状态为使能,则根据是否需要向CPU返回读数据、是否收到LPC外设的串行中断请求、是否收到LPC外本文档来自技高网...

【技术保护点】
一种基于GPIO接口的LPC外设扩展方法,其特征在于实施步骤如下:1)基于双向异步请求‑应答握手协议通过多次握手传输接收CPU通过GPIO接口发起的报文请求,所述报文请求的可选字段信息包括报文头、地址、数据三种信息,所述报文请求的类型包括DMA读、DMA写、LPC设备读请求、LPC设备写请求,且其中类型为DMA读或LPC设备写请求的报文请求只含有报文头和地址信息而不含有数据信息,类型为DMA读和DMA写的报文请求的地址信息为DMA通道号;解析报文请求,根据报文请求的报文头判断其发送目标,如果发送目标为LPC外设,则将报文请求转换为LPC总线协议相关请求并基于同步握手协议将报文请求输出,跳转执行步骤2);否则基于同步握手协议将报文请求输出,跳转执行步骤3);同时,判断是否收到发往GPIO接口的报文请求,如果收到发往GPIO接口的报文请求或者中断请求,则将收到的报文请求基于双向异步请求‑应答握手协议通过多次握手传输发送给CPU的GPIO接口;2)接收报文请求,根据接收到报文请求中携带的设备类型和地址、数据及数据大小将相应的报文请求按照LPC协议向下发送给指定的LPC外设;同时,遵循LPC协议检测LPC总线上由LPC外设发送的数据,如果在LPC总线上读取到LPC外设发送的数据,则将LPC外设发送的数据基于同步握手协议发送作为发往CPU的GPIO接口的报文请求;3)接收报文请求,根据收到的报文请求执行对内置寄存器的操作,所述内置寄存器包括长等待超时控制寄存器、中断状态寄存器、清除中断寄存器、中断屏蔽寄存器、配置寄存器,针对CPU而言中断状态寄存器为读寄存器,清除中断寄存器为写寄存器,长等待超时控制寄存器、中断屏蔽寄存器、配置寄存器三者均为读写寄存器,所述长等待超时控制寄存器用于实现与CPU之间发送中断请求的超时控制,所述中断状态寄存器用于记录当前中断请求状态,所述当前中断请求状态可为数据读、串行中断请求和外设DMA请求三者之一,所述中断屏蔽寄存器用于记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,所述配置寄存器用于记录数据读、串行中断请求和外设DMA请求三者的模式配置信息;所述对内置寄存器的操作包括对配置寄存器、中断屏蔽寄存器、清除中断寄存器三者的操作;同时根据中断屏蔽寄存器判断记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,如果状态为使能,则根据是否需要向CPU返回读数据、是否收到LPC外设的串行中断请求、是否收到LPC外设的外设DMA请求来写中断状态寄存器,并根据写中断状态寄存器的状态来决定是否向CPU的GPIO接口发送中断请求,如果需要向CPU的GPIO接口发送中断请求,则基于同步握手协议将向CPU的GPIO接口发送中断请求。...

【技术特征摘要】
1.一种基于GPIO接口的LPC外设扩展方法,其特征在于实施步骤如下: 1)基于双向异步请求-应答握手协议通过多次握手传输接收CPU通过GPIO接口发起的报文请求,所述报文请求的可选字段信息包括报文头、地址、数据三种信息,所述报文请求的类型包括DMA读、DMA写、LPC设备读请求、LPC设备写请求,且其中类型为DMA读或LPC设备写请求的报文请求只含有报文头和地址信息而不含有数据信息,类型为DMA读和DMA写的报文请求的地址信息为DMA通道号;解析报文请求,根据报文请求的报文头判断其发送目标,如果发送目标为LPC外设,则将报文请求转换为LPC总线协议相关请求并基于同步握手协议将报文请求输出,跳转执行步骤2);否则基于同步握手协议将报文请求输出,跳转执行步骤3);同时,判断是否收到发往GPIO接口的报文请求,如果收到发往GPIO接口的报文请求或者中断请求,则将收到的报文请求基于双向异步请求-应答握手协议通过多次握手传输发送给CPU的GPIO接口; 2)接收报文请求,根据接收到报文请求中携带的设备类型和地址、数据及数据大小将相应的报文请求按照LPC协议向下发送给指定的LPC外设;同时,遵循LPC协议检测LPC总线上由LPC外设发送的数据,如果在LPC总线上读取到LPC外设发送的数据,则将LPC外设发送的数据基于同步握手协议发送作为发往CPU的GPIO接口的报文请求; 3)接收报文请求,根据收到的报文请求执行对内置寄存器的操作,所述内置寄存器包括长等待超时控制寄存器、中断状态寄存器、清除中断寄存器、中断屏蔽寄存器、配置寄存器,针对CPU而言中断状态寄存器为读寄存器,清除中断寄存器为写寄存器,长等待超时控制寄存器、中断屏蔽寄存器、配置寄存器三者均为读写寄存器,所述长等待超时控制寄存器用于实现与CPU之间发送中断请求的超时控制,所述中断状态寄存器用于记录当前中断请求状态,所述当前中断请求状态可为数据读、串行中断请求和外设DMA请求三者之一,所述中断屏蔽寄存器用于记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,所述配置寄存器用于记录数据读、串行中断请求和外设DMA请求三者的模式配置信息;所述对内置寄存器的操作包括对配置寄存器、中断屏蔽寄存器、清除中断寄存器三者的操作;同时根据中断屏蔽寄存器判断记录数据读、串行中断请求和外设DMA请求三者的中断使能状态,如果状态为使能,则根据是否需要向CPU返回读数据、是否收到LPC外设的串行中断请求、是否收到LPC外设的外设DMA请求来写中断状态寄存器,并根据写中断状态寄存器的状态来决定是否向CPU的GPIO接口发送中断请求,如果需要向CPU的GPIO接口发送中断请求,则基于同步握手协议将向CPU的GPIO接口发送中断请求。2.一种基于GPIO接口的LPC外设扩展...

【专利技术属性】
技术研发人员:马爱永张明郭御风邓宇龚锐任巨石伟高正坤窦强
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1