当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]近几年来,随着后PC时代的来临,嵌入式系统由于其简洁、高效等特点,得到了飞速发展,嵌入式技术目前已将各种计算机技术多层次、多方面地交叉融合在一起。嵌入式系统加快了

近几年来,随着后PC时代的来临,嵌入式系统由于其简洁、高效等特点,得到了飞速发展,嵌入式技术目前已将各种计算机技术多层次、多方面地交叉融合在一起。嵌入式系统加快了工业设计进程,降低了开发成本及其风险,使用简便,扩展灵活,高效精简,可方便应用于工业各个领域。

传统方法中,扩展多个串行口是利用多个中断源。但在嵌入式系统中,花费大量的中断源来扩展串口无疑是大量的资源浪费。针对这种情况,为了节省紧张的系统资源,本文提出的实现高效多串口中断源方案,可以利用单一的中断源来管理多个扩展串口,并保证多个串口中断的无漏检测与服务。

总体设计

方案的基本组成如图1所示。RS-232串口通过驱动芯片MAX202转换成TTL电平,通过串口异步通信器件16C554输出中断请求,通过或门获得多个串口的中断请求INTREQ,再通过CPLD与中断控制器相连接。中断线INTREQ通过CPLD主要是在CPLD中有一位的控制寄存器INTEN,用做中断允许控制位。并且根据16C554的中断请求INTREQ和INTEN的状态来最终生成DLY_IRQ,向CPU发出请求。CPU实时响应中断请求DLY_IRQ,在中断服务过程中,CPU按顺序逐个检查多个扩展的串口中断源,有中断请求的就给予服务。

在刚刚检查过的中断又出现时,一方面靠CPLD中的一位寄存器INTREQ锁存;另一方面,当上一中断服务完毕时,CPLD中的8位状态机保证了一定时间的延迟,此延时中,中断控制把堆栈内容返回给CPU寄存器,恢复系统状态,确保上一中断完全退出,并且下一中断能获得响应。这样,即使在多个串口中断密集发生的环境下,扩展的多个串行口仍可获得实时性和可靠性较高的中断响应。

 

 

硬件实现

MAX202

MAXIM公司的MAX202芯片为标准的RS-232电平转换器,符合RS-232通信标准,功耗低,集成度高,只用单一5V电源,每片有两个驱动器和两个接收器,具有两组接收和发送通道,全部接口电路简单,可靠性高,实现TTL电平和RS-232电平的直接转换。

16C554

16C554是集成异步通信元件,在FIFO模式,传输和接收前将数据缓冲为16字节数据包,减少了CPU的中断数量。包含四个改良16C550异步传输器件,使得串行I/O更加可靠,每个信道实现串行和并行两种连接方式的转换,每个信道的状态可以通过CPU的操作读取,可以获取操作情况或任何的错误状态。三态输出为双向数据总线和控制总线提供TTL驱动能力,优先级中断系统控制,可编程的串行接口特性。

8259A

8259A是可编程的中断控制芯片,每块芯片可管理8级向量中断,具有八条中断请求输入线IRQ0~IRQ7,一条外中断请求输出线,具有4种主要工作方式,即全嵌套、循环优先级、特定屏蔽和程序查询方式。同时,它还有4种从属工作方式,即结束中断,读状态,中断请求触发和数据缓冲方式。这些工作方式可以通过初始化命令字寄存器来实现。采用全嵌套方式时,芯片初始化后不必设置操作命令字,中断请求优先级是固定的,0级最高,7级最低,接受的8个中断请求信号为边沿触发,设定0级请求对应中断号为8,直至7级请求中断号为0FH。

单片工作时,实际使用020H和021H两个端口。经过中断优先级分析器选中的当前请求的中断优先级,其相应的中断服务寄存器ISR位被置1,一直保持到中断服务程序在返回前发中断结束命令为止。在ISR置位期间,禁止同级或较低级的中断响应,开放较高级的中断请求。

CPLD编程

嵌入式系统都有灵活性的要求。因此,本系统选用了Lattice ispLSI系列产品,以适应不断扩展或开发新的产品以及一个硬件平台上多个品种的实现。使用可编程逻辑器件CPLD有利于在系统设计和现场运行后可能遇到的系统修改、调试、升级等。Lattice是带有在系统可编程(ISP)功能的可编程逻辑器件,不需要重新修改PCB即可修改原有设计。

(1)在CPLD中设计一位寄存器INTEN原理图如图2所示:地址总线A对应INTEN的口地址,数据线D[0]对应INTEN的数据,数据在L#的上升沿锁定。

(2)在CPLD中设计一个8位状态机,状态机由XCLK驱动,XCLK通过分频生成100Khz时钟,即Dt=10ms。

设计构思

在CPLD中做一个一位寄存器Reg,称为INTEN中断允许,由一个8位状态机根据16C554的中断请求线产生的INTREQ及INTEN状态来最终生成DLY_IRQ。

(1)INTREQ为n个中断的或:

INTREQ=IRQ0+IRQ1+...+IRQn

(2)CPU对INTEN只写,操作过程分三步:

第一步:中断安装后设置INTEN=1;

第二步:进入中断服务程序后CPU设置INTEN=0;

第三步:退出中断服务程序的最后指令:

//INTEN_PORT为INTEN的口地址

(3)中断响应的时序如图3所示。

在ISR置位期,有中断请求INTREQ产生时,此时如果触发了中断,则会使上次中断服务无法完成,因而造成中断丢失。因此我们在ISR置位期间,将中断允许INTEN设置为0,防止其他中断请求触发中断,并用INTREQ锁存未被响应的中断请求。退出中断服务后,将中断允许INTEN设置为1,保证其他中断请求能够被响应,并延迟以确保此次中断服务完全退出。

(4)中断控制寄存器的状态如图4所示(描述8位状态机的转换)。

在退出中断时,将INTEN设置为1,从状态S3转换到状态S0,时间上延迟了5Dt=50ms,确保当前中断完全退出。INTREQ锁存中断请求,以确保下一中断能获得响应。

软件设计

在设计中断服务程序时,注意中断服务程序必须具备自我保护能力,并能访问到所有当前段基址和堆栈指针,接管中断向量前要关中断,在中断程序入口处要立即开中断,以允许较高级的中断产生,中断程序执行IRET指令前,应向中断控制器发出结束中断命令EOI。在安装中断时,将INTEN设置为1,在中断服务中轮流检查多个串口,如果有中断服务产生则将INTEN设置为0,退出中断服务的时候将INTEN设置为1。

结语

本文提出的多串口中断源的实现方案,大大节省了资源,确保了中断请求的无漏检测和服务,并有效解决了多个串口共享同一中断源时所造成的冲突和丢失等问题。[!--empirenews.page--]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

台湾新竹 – 2024年4月23日 – 著名的微控制器供货商新唐科技公司,与全软件开发生命周期提供跨平台解决方案的全球软件公司Qt Group宣布深化合作,扩展新唐科技人机界面(HMI)平台支持「Qt for MCUs」...

关键字: 微控制器 嵌入式系统 MCU

随着物联网、嵌入式系统以及微控制器技术的飞速发展,微控制器已成为众多智能设备和系统不可或缺的核心组件。而微控制器的正常工作,离不开烧录器的精准操作。C8051F021烧录器,作为一款高效、稳定、易用的微控制器烧录工具,在...

关键字: c8051f021烧录器 联网 嵌入式系统

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

2024年4月18日,国民技术第四代可信计算芯片NS350 v32/v33系列产品正式发布并开始量产供货。NS350 v32/v33是一款高安全、高性能、超值可信密码模块2.0 (TCM 2.0)安全芯片,适用于PC、服...

关键字: PC 服务器平台 嵌入式系统

2024年,嵌入式系统将走向何方?如何才能走在趋势的前沿?从工厂到家电,从医院里昂贵的医疗设备,到随处可见的可穿戴设备,我们身边的联网设备越来越多,生活更加绿色低碳,嵌入式系统功不可没。ST于3月19日成功举办STM32...

关键字: 嵌入式系统 可穿戴设备

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统

【2024年3月25日,德国慕尼黑和瑞典瓦尔贝格讯】不同汽车的独特性给汽车零部件供应商和OEM厂商等带来了挑战,因为每辆车的驾驶方式、驾驶地点、驾驶者、设计、用途以及道路和交通状况都是独一无二的。为保证每辆汽车都能正常运...

关键字: AI 机器学习 嵌入式系统

GD32F303作为一款先进的微控制器,在嵌入式系统领域有着广泛的应用。本文旨在深入探究GD32F303的发布时间,并分析其背后的技术背景和市场环境。通过对相关资料的梳理和分析,本文揭示了GD32F303发布的历史背景、...

关键字: GD32F303 微控制器 嵌入式系统
关闭
关闭