新闻中心

EEPW首页>嵌入式系统>设计应用> μC/OS和80C51的固话来电防火墙设计

μC/OS和80C51的固话来电防火墙设计

作者: 时间:2013-01-11 来源:网络 收藏

3;硬件层驱动程序设计
3.1 异步串行口驱动程序
当使用中断模式时,从接收移位寄存器接收到一个完整的字节,并将数据送入数据输入寄存器,产生一个中断。中断处理程序从端口读入字节,清除中断源。这时,可以处理ISR收到的字节,或者将字节送入缓冲区由后台处理,缓冲区大小依赖于后台进程控制CPU处理信息的速度。从串行端口捕捉数据时,常用一种被称作环形缓冲区的专用缓冲区。
输入数据的响应依赖于后台进程的执行速度。如果是实时内核,则处理输入数据的速度就与ISR接收不处理的速度差不多。为此,环形缓冲区的管理加入了信号量说明:
①应用程序等待信号量。
②接收到一字节后,ISR从串行端口读入字节。
③将接收到的字节送入环形缓冲区。
④ISR释放一个信号量,通知任务已经接收到一字节。
⑤信号量有效,等待任务准备开始运行。ISR完成后,内核决定等待任务是否成为优先级最高的任务。如果是,并且内核为可剥夺型内核,则恢复等待字节的任务。该任务从环型缓冲区取出数据,并执行相关操作。
3.2 基于;—II的串行口接收驱动
单片机对串口的支持仅仅是当数据送入SBUF时开始移位,但收到一个完整的字节后产生中断,通知用户进行读操作。在P89C668中,串行口并没有设计缓冲区,接收移位寄存器直接将数据送到接收SBUF,如果没有及时从接收SBUF中取出,前一字节就会丢失。如果没有驱动程序的支持,应用程序必须一字节一字节地接收数据,不但浪费时间,而且对应用程序的编制将产生极大影响。所以,在使用串口的时候,串口驱动程序是必须有的,通过驱动程序,可以大大简化应用程序的编写。
针对P89C668片内UART和;—II的特性,设计了分层明确的驱动模型,串口接收分层驱动结构图略——编者注。
任务在对环形缓冲区进行操作的时候,通过等待信号量,确定缓冲区是否允许操作。同时,中断服务子程序通过释放信号量来通知任务可以对缓冲区进行操作,大大提高了任务的响应时间。

4 系统软件设计
根据硬件构成,系统软件可分为来电解码、显示、键盘、判决、存储几大模块。模块在μC/OS—II的调度之下运行。
在值守状态时,各模块处于挂起态。当系统检测到铃流,将运行来电解码模块,并将解得的号码通知μC/OS—II。μC/OS—II将通过判决模块判断来电属性,执行相应动作。程序流程如图8所示。

本文引用地址://m.amcfsurvey.com/article/148143.htm

h.JPG



结语
本文设计了基于μC/OS和80C51单片机的固话来电。介绍了电话机的基本工作原理,对硬件主要模块进行了详细地分解分析。对软件基本流程和设计思路进行了阐述。整个系统通过了实际产品的最终验证,达到设计要求。

交换机相关文章:交换机工作原理



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭