CN1459734A - 采用cpld实现扩充中断的装置 - Google Patents

采用cpld实现扩充中断的装置 Download PDF

Info

Publication number
CN1459734A
CN1459734A CN 02120038 CN02120038A CN1459734A CN 1459734 A CN1459734 A CN 1459734A CN 02120038 CN02120038 CN 02120038 CN 02120038 A CN02120038 A CN 02120038A CN 1459734 A CN1459734 A CN 1459734A
Authority
CN
China
Prior art keywords
gpio
register
correspondence
interrupt
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 02120038
Other languages
English (en)
Other versions
CN1229734C (zh
Inventor
刘鹏
颜洪涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Motorola Mobile Communication Technology Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN 02120038 priority Critical patent/CN1229734C/zh
Publication of CN1459734A publication Critical patent/CN1459734A/zh
Application granted granted Critical
Publication of CN1229734C publication Critical patent/CN1229734C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)
  • Bus Control (AREA)

Abstract

一种采用CPLD实现扩充中断装置,包括CPLD挂在嵌入式控制器的数据总线和地址总线上,多个CPLD内的控制***输入中断的寄存器,所述CPLD的中断触发端连接到嵌入式控制器的中断触发源上。本发明降低了***的设计复杂性,使***的后期修改性能得到增强。不需要修改***的硬件,只需要修改***的软件就可达到修改***的目的。本发明提高了***的运行速度,降低了CPU的负担。

Description

采用CPLD实现扩充中断的装置
技术领域
本发明涉及嵌入式***的微处理器的***扩展装置,特别涉及采用CPLD(复杂可编程逻辑控制器)实现扩充中断的装置。
背景技术
虽然目前一些嵌入式***的微处理器的***扩展非常丰富,但是在一些应用场合,其控制器的***功能在一定的范围内还是比较缺乏的。例如,在嵌入式控制器的输入输出管脚比较缺少的情况下,给应用带来了极大的不方便。如图1所示,现有技术对于***的输出可以实现很好的性能,但是对于***的输入,则性能比较低。主要原因是该扩充的逻辑器件需要CPU不断的对其进行读操作,降低了***的性能。另外,当***处于休眠状态的时候,由于***不能定期监测到***的扩充输入,所以***的扩充输入不能够唤醒***。当***的扩充输入要实现中断的功能,每一个中断的输入需要对应不同的设置(例如,是上升沿触发还是下降沿触发,是高电平触发还是低电平触发等等),都没法设置,使用起来相当不便。
发明内容
本发明的目的是提供一种采用CPLD给嵌入式微控制器的GPIO(一般输入/输出)输入输出功能进行扩展的装置。
为实现上述目的,采用CPLD实现扩充中断装置包括CPLD挂在嵌入式控制器的数据总线和地址总线上,多个CPLD内的控制***输入中断的寄存器,所述CPLD的中断触发端连接到嵌入式控制器的中断触发源上。
本发明降低了***的设计复杂性,使***的后期修改性能得到增强。不需要修改***的硬件,只需要修改***的软件就可达到修改***的目的。本发明提高了***的运行速度,降低了CPU的负担。
附图说明
图1是现有技术实现扩充终端的示意图;
图2是本发明采用CPLD实现扩充终端的示意图;
图3是CPLD内寄存器的示意图;
图4是本发明应用实施例的示意图;
图5是***运行流程图;
图6是中断流程图。
具体实施方式
由于目前的微处理器的内部都有中断控制器,所以在其外部的扩充的中断控制器和GPIO的功能都是一个二级控制器,它的工作原理是建立在***的一级中断控制器的工作基础上的,这就决定了其有以下的特点:
1.扩充中断和GPIO控制器的是挂在该嵌入式控制器的数据线和地址总线上的,该扩充的中断和GPIO控制器的CPLD会有一个中断触发信号连接到该嵌入式中断控制器的中断触发信号上的,作为二级中断与一级之间的申请信号。
2.该扩充的中断和GPIO控制器的逻辑器件是可以编程的,其上的功能具有可以随着***的程序变化而变化。
3.为了简化***的设计,该中断和GPIO控制器的中断级别只有一个级别,没有级别的高低之分,这样在一定的程度上节约了***的资源,达到降低成本的目的。
4.为了操作上的灵活,该中断和GPIO控制器具有中断屏蔽,中断的触发条件设置如沿触发还是电平触发,高电平触发还是低电平触发等都是功能上的设置。
5.由于采用了CPLD所以中断和GPIO控制器本身是可以更新的,这样就可以根据***的情况进行灵活配置了。
6.中断和GPIO控制器里面的一些寄存器的内容可以读写的,从而***通过读写中断和GPIO控制器的寄存器来达到控制该中断和GPIO控制器的目的。
7.该中断和GPIO控制器的功耗应该是非常低的,适合于手持产品。
结合以上的一些特点,如图2所示,本发明采用可编程逻辑控制器实现扩充中断。在***的输出方面,本发明和现有技术没有本质的区别。但在***的输入方面,本发明和现有技术的最本质的区别是本发明采用了中断的方式,而现有技术采用了查询的方式。在本发明的CPLD中,可以对于***的输入定义一系列不同的寄存器,来达到***输入中断的控制目的。本发明仅仅多占用了CPU的一个中断源,可以扩充设计者想要的任何中断,在实际的工作中具有非常大的意义。
如图3所示,中断和GPIO控制器的工作原理是这样的,当输入信号产生了一个变化,并且该变化符合中断沿或者中断电平以及电平的高低等等的条件,就可以把中断传递到中断响应寄存器,如果该中断是被屏蔽掉的,则该中断只传递到中断响应寄存器,如果该中断是非屏蔽的,则传递到中断状态寄存器,然后通过CPLD_IRQ给***的中断控制器申请中断。
首先,定义该中断和GPIO控制器的寄存器,其包括GPIO_IN_VALUE,GPIO_IN_STATUS,GPIO_IN_POLARITY,GPIO_IN_EDGE,GPIO_IN_MASK,GPIO_IN_PENDING以及GPIO_OUT_VALUE寄存器,由于***总线的缘故,它们的位数定义为16位,具体含义如下:
GPIO_IN_VALUE输入信号数值寄存器,该寄存器的数值反映了输入信号线上的即时状态,信号为高时为1,为低时为0。
GPIO_IN_MASK  中断屏蔽寄存器,其对应的信号为GPIO_IN0到GPIO_IN15,当该寄存器对应位为0的时候,在符合中断条件的时候,GPIO_IN_STATE寄存器对应的位不标志(为0),当其对应位为1的时候,在符合中断的条件的时候,GPIO_IN_STATE对应的位设置标志(为1)。
GPIO_IN_PENDING中断响应寄存器,当中断已经触发了之后,如果中断屏蔽寄存器的对应位的数值为1的时候,GPIO_IN_STATUS对应的位设置标志(为1),GPIO_IN_PENDING对应的位设置标志(为1),如果中断寄存器对应的位的数值为0时候,GPIO_IN_STATUS对应的位不设置标志,GPIO_IN_PENDING对应的位设置标志
GPIO_IN_STATUS中断状态寄存器,当中断已经触发了之后,如果中断屏蔽寄存器的对应位的数值为1的时候,GPIO_IN_STATUS对应的位设置标志(为1),GPIO_IN_PENDING对应的位设置标志(为1),如果中断寄存器对应的位的数值为0时候,GPIO_IN_STATUS对应的位不设置标志,GPIO_IN_PENDING对应的位设置标志。
GPIO_IN_EDGE中断沿检测寄存器,当GPIO_IN_POLARITY对应的位为0的时候,如果GPIO_IN_EDGE为0时候,其中断的触发条件为低电平触发,如果GPIO_IN_EDGE为1的时候,其中断为下降沿触发。当GPIO_IN_POLARITY对应的位为1的时候,如果GPIO_IN_EDGE为0时候,其中断为高电平触发,如果GPIO_IN_EDGE为1的时候,其中断为上升沿触发。
GPIO_IN_POLARITY中断极性寄存器,当GPIO_IN_POLARITY对应的位为0的时候,如果GPIO_IN_EDGE为0时候,其中断的触发条件为低电平触发,如果GPIO_IN_EDGE为1的时候,其中断为下降沿触发。当GPIO_IN_POLARITY对应的位为1的时候,如果GPIO_IN_EDGE为0时候,其中断为高电平触发,如果GPIO_IN_EDGE为1的时候,其中断为上升沿触发
GPIO_OUT_VALUE输出信号的数值寄存器,该寄存器的数值反映了输出管脚上的信号的高低,当位数为1的时候,表示该对应的管脚为高,当为0的时候,表示对应的管脚电平为低。
其次,该中断和GPIO控制器首先必须初始化,其初始化的内容包括以上所列的除了GPIO_IN_VALUE寄存器外的所有寄存器,以便中断寄存器可以正确工作。
再者,如果***需要设置一些输出信号,则可以直接访问GPIO_OUT_VALUE寄存器的内容。
最后,如果***发生了中断响应,则中断响应的流程如下:
1.读取并清除GPIO_IN_STATUS和GPIO_IN_PENDING寄存器;
2.读取GPIO_IN_VALUE寄存器;
3.响应相应位的中断服务程序。
实施例
本发明采用了XILINX的COOLRUNNER系列的XCR3128CS144型号的CPLD已经在以INTEL的STRONGARM SA1110为核心的嵌入式***中得到了应用,该应用如图4所示。
首先介绍一下INTEL SA1110和INTERRUPT AND GPIO CONTROLLER之间的连接信号如下:
CLK提供中断和GPIO控制器工作所需要的时钟,信号的方向为SA1110输出,中断和GPIO控制器输入;
BD是数据总线,其带宽为16位,信号的方向为双向;
BA是地址总线,其带宽为5位,信号的方向为SA1110输出,中断和GPIO控制器输入;
SA_CS3是中断和GPIO控制器的片选信号,信号的方向为SA1110输出,中断和GPIO控制器输入;
SA_OE是中断和GPIO控制器的输出使能信号,信号的方向为SA1110输出,中断和GPIO控制器输入;
SA_WE是中断和GPIO控制器的输入使能信号,信号的方向为SA1110输出,中断和GPIO控制器输入;
CPLD_IRQ是中断和GPIO控制器的中断请求信号,表明该控制器目前给SA1110发出中断请求信号  信号的方向为中断和GPIO控制器输出,SA1110输入;
中断和CPIO控制器及***设备之间的信号为16路输入信号,16路输出信号,输入信号的工作方式采用了中断控制的方式,输出信号的工作方式采用了***直接访问的方式。由于对于整体***而言,输入信号之间的区别不大,输出信号之间的区别也不大,所以在这里对于输入信号盒输出信号的具体含义就不做详细的说明。图5是***运行流程图;图6是中断流程图。

Claims (9)

1.一种采用CPLD实现扩充中断装置,包括:CPLD挂在嵌入式控制器的数据总线和地址总线上,其特征在于还包括多个CPLD内的控制***输入中断的寄存器,所述CPLD的中断触发端连接到嵌入式控制器的中断触发源上。
2.按权利要求1所述的装置,其特征在于所述寄存器包括:
输入信号数值寄存器,该寄存器的数值反映了输入信号线上的即时状态,信号为高时为1,为低时为0。
3.按权利要求1所述的装置,其特征在于所述寄存器包括:
中断屏蔽寄存器,其对应的信号为GPIO_IN0到GPIO_IN15,当该寄存器对应位为0的时候,在符合中断条件的时候,GPIO_IN_STATE寄存器对应的位不标志(为0),当其对应位为1的时候,在符合中断的条件的时候,GPIO_IN_STATE对应的位设置标志(为1)。
4.按权利要求1所述的装置,其特征在于所述寄存器包括:
中断响应寄存器,当中断已经触发了之后,如果中断屏蔽寄存器的对应位的数值为1的时候,GPIO_IN_STATUS对应的位设置标志(为1),GPIO_IN_PENDING对应的位设置标志(为1),如果中断寄存器对应的位的数值为0时候,GPIO_IN_STATUS对应的位不设置标志,GPIO_IN_PENDING对应的位设置标志。
5.按权利要求1所述的装置,其特征在于所述寄存器包括:
中断状态寄存器,当中断已经触发了之后,如果中断屏蔽寄存器的对应位的数值为1的时候,GPIO_IN_STATUS对应的位设置标志(为1),GPIO_IN_PENDING对应的位设置标志(为1),如果中断寄存器对应的位的数值为0时候,GPIO_IN_STATUS对应的位不设置标志,GPIO_IN_PENDING对应的位设置标志。
6.按权利要求1所述的装置,其特征在于所述寄存器包括:
中断沿检测寄存器,当GPIO_IN_POLARITY对应的位为0的时候,如果GPIO_IN_EDGE为0时候,其中断的触发条件为低电平触发,如果GPIO_IN_EDGE为1的时候,其中断为下降沿触发,当GPIO_IN_POLARITY对应的位为1的时候,如果GPIO_IN_EDGE为0时候,其中断为高电平触发,如果GPIO_IN_EDGE为1的时候,其中断为上升沿触发。
7.按权利要求1所述的装置,其特征在于所述寄存器包括:
中断极性寄存器,当GPIO_IN_POLARITY对应的位为0的时候,如果GPIO_IN_EDGE为0时候,其中断的触发条件为低电平触发,如果GPIO_IN_EDGE为1的时候,其中断为下降沿触发,当GPIO_IN_POLARITY对应的位为1的时候,如果GPIO_IN_EDGE为0时候,其中断为高电平触发,如果GPIO_IN_EDGE为1的时候,其中断为上升沿触发。
8.按权利要求1所述的装置,其特征在于所述寄存器包括:
输入信号数值寄存器,该寄存器的数值反映了输入信号线上的即时状态,信号为高时为1,为低时为0。
9.按权利要求1所述的装置,其特征在于所述寄存器包括:
输出信号的数值寄存器,该寄存器的数值反映了输出管脚上的信号的高低,当位数为1的时候,表示该对应的管脚为高,当为0的时候,表示对应的管脚电平为低。
CN 02120038 2002-05-21 2002-05-21 采用复杂可编程逻辑控制器实现扩充中断的装置 Expired - Fee Related CN1229734C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02120038 CN1229734C (zh) 2002-05-21 2002-05-21 采用复杂可编程逻辑控制器实现扩充中断的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02120038 CN1229734C (zh) 2002-05-21 2002-05-21 采用复杂可编程逻辑控制器实现扩充中断的装置

Publications (2)

Publication Number Publication Date
CN1459734A true CN1459734A (zh) 2003-12-03
CN1229734C CN1229734C (zh) 2005-11-30

Family

ID=29426925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02120038 Expired - Fee Related CN1229734C (zh) 2002-05-21 2002-05-21 采用复杂可编程逻辑控制器实现扩充中断的装置

Country Status (1)

Country Link
CN (1) CN1229734C (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012877A (zh) * 2010-11-26 2011-04-13 成都智科通信技术有限公司 一种利用cpld来扩展嵌入式处理器gpio的方法
CN102436432A (zh) * 2011-09-15 2012-05-02 中兴通讯股份有限公司 一种嵌入式微处理器的读写方法及***
CN105426336A (zh) * 2015-11-09 2016-03-23 上海斐讯数据通信技术有限公司 数据处理***、数据读取输出方法
CN109460378A (zh) * 2018-10-30 2019-03-12 新华三信息安全技术有限公司 一种接口电路、信号处理方法、器件及介质
CN111221755A (zh) * 2019-12-28 2020-06-02 重庆秦嵩科技有限公司 一种FPGA2子模块的io中断控制方法
CN111723032A (zh) * 2019-03-21 2020-09-29 杭州宏杉科技股份有限公司 一种中断管控方法及电子设备
CN115643223A (zh) * 2022-12-21 2023-01-24 新华三信息技术有限公司 一种中断信号传输方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012877A (zh) * 2010-11-26 2011-04-13 成都智科通信技术有限公司 一种利用cpld来扩展嵌入式处理器gpio的方法
CN102012877B (zh) * 2010-11-26 2012-11-14 成都智科通信技术有限公司 利用cpld扩展嵌入式处理器的gpio的嵌入式程控交换机
CN102436432A (zh) * 2011-09-15 2012-05-02 中兴通讯股份有限公司 一种嵌入式微处理器的读写方法及***
CN105426336A (zh) * 2015-11-09 2016-03-23 上海斐讯数据通信技术有限公司 数据处理***、数据读取输出方法
CN109460378A (zh) * 2018-10-30 2019-03-12 新华三信息安全技术有限公司 一种接口电路、信号处理方法、器件及介质
CN109460378B (zh) * 2018-10-30 2021-01-15 新华三信息安全技术有限公司 一种接口电路、信号处理方法、器件及介质
CN111723032A (zh) * 2019-03-21 2020-09-29 杭州宏杉科技股份有限公司 一种中断管控方法及电子设备
CN111723032B (zh) * 2019-03-21 2021-09-24 杭州宏杉科技股份有限公司 一种中断管控方法及电子设备
CN111221755A (zh) * 2019-12-28 2020-06-02 重庆秦嵩科技有限公司 一种FPGA2子模块的io中断控制方法
CN115643223A (zh) * 2022-12-21 2023-01-24 新华三信息技术有限公司 一种中断信号传输方法及装置
CN115643223B (zh) * 2022-12-21 2023-02-28 新华三信息技术有限公司 一种中断信号传输方法及装置

Also Published As

Publication number Publication date
CN1229734C (zh) 2005-11-30

Similar Documents

Publication Publication Date Title
CN1229734C (zh) 采用复杂可编程逻辑控制器实现扩充中断的装置
CN1189828C (zh) 图形控制器以及图形控制器中使用的电源管理方法
US20010047490A1 (en) Method and apparatus for providing intelligent power management
EP1369767A3 (en) Method and apparatus for adaptive power management of memory
US7231468B2 (en) Future activity list for peripheral bus host controller
KR920010975B1 (ko) 입출력 제어 시스템 및 그 방법
CN1556474A (zh) 软件的在线升级方法及装置
CN1286038C (zh) 基于双环形队列、非中断式pci通信方法
CN100365574C (zh) 一种嵌入式芯片及其程序空间扩展的方法
CN1296830C (zh) 中央处理单元启动的方法及***
CN1570887A (zh) 预取数据控制器及其方法
CN1255717C (zh) 用于在盘驱动器接口之间共享中断的方法和设备
JPH09237130A (ja) コンピュータシステム及び同システムにおけるクロック停止信号制御方法
CN1438583A (zh) 监测计算机***资源的装置及串行总线和该资源相通方法
CN111177027B (zh) 动态随机存取存储器、内存管理方法、***及存储介质
CN1252546A (zh) 电脑装置及其由省电模式进入运作模式的方法
CN1684030A (zh) 码流播放卡和码流采集卡的驱动方法
CN2743897Y (zh) 基于can总线的燃料电池汽车整车控制器监控***
EP1503270A3 (en) Apparatus and method for controlling CPU speed transition
CN1735855A (zh) 用于处理数据传送的方法和装置
US5713041A (en) Computer system having a host CPU and a logic for integrating peripheral control functions into the host CPU
CN1545004A (zh) 高速usb数据通讯接口装置
CN1670691A (zh) 调节cpu频率之***及方法
CN1277199C (zh) 加速处理器读写暂存器的方法及装置
KR101065114B1 (ko) 프로그래밍 언어 표현에서 장치 드라이버 메모리로의 액세스

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: LIANXIANG (BEIJING) CO. LTD.; HUMANTEC INDUSTRIAL

Free format text: FORMER OWNER: LIANXIANG (BEIJING) CO. LTD.

Effective date: 20080808

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20080808

Address after: No. 6, Pioneer Road, Beijing, Haidian District: 100085

Co-patentee after: Lenovo Mobile Communication Technology Ltd.

Patentee after: Lenovo (Beijing) Co., Ltd.

Address before: No. 6, Pioneer Road, Beijing, Haidian District: 100085

Patentee before: Lenovo (Beijing) Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051130

Termination date: 20210521

CF01 Termination of patent right due to non-payment of annual fee