新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > xWorks嵌入式系统下视频监控系统通信的研究

xWorks嵌入式系统下视频监控系统通信的研究

作者:时间:2012-04-06来源:网络收藏



图3  用状态机实现帧同步的状态转换图

利用FSM处理异步通信同步的好处是:当通信协议发生变化时,可以很容易地对软件进行移植工作. 因为在数据链路层,所有帧格式都是由帧头+ 数据+ 校验字的方式所组成,只需要改变同步字和校验方式就可以完成数据链路层的数据接收和应答.

(3) 用生产者—消费者问题实现数据同步通信数据同步通信过程实际上等同于生产者—消费者问题( Producer-Consumer Problem) . 生产者—消费者问题是一个著名的进程同步问题,它描述的是: 用一群生产者进程生产消息,并用此消息提供给消费者进程消费. 为使生产者进程和消费者进程能并发执行,在它们之间设置一个具有N 个缓冲区的缓冲池,生产者进程可将它所生产的消息投入一个缓冲区中,消费者进程可从一个缓冲区中取得一个消息消费. 尽管所有的生产者进程和消费者进程都是以异步方式进行,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区中去取消息,也不允许生产者进程到一个已装有消息但该消息未被取走的缓冲区中投放新消息.

采用共享数据的方法简化了数据交换,但在多进程数据通信过程中却可能发生错误,使数据内容被破坏. 为解决问题,可利用信号量的互斥性加以同步保护,获得对缓冲区(数据) 的独占访问,见图4.



图4  使用信号量的缓冲区管理图

图 4 中,假设缓冲池包含10 个缓冲区,一个任务通过调用BufReq ( ) 可以从缓冲区管理器中获得一个缓冲区,用BufRel ( ) 释放该缓冲区到缓冲区管理器中. 缓冲区管理器共有10 个信号量,当所有的信号量都被使用时,再申请缓冲区的任务将被挂起,直到有信号量可以使用为止. 当一个带有缓冲区的任务完成后,它将调用BufRel ( ) 把缓冲区还给缓冲区管理器.

本文采用来管理缓冲区,与其它信号量相比,的特点在于,它可以保持对信号量释放次数的追踪. 信号量每次释放,计数器加1 ,每次获取,计数器减1. 当计数器为0 时,试图获取该信号量的任务被阻塞. 在中断服务程序中,可以将数据写入缓冲区,然后再释放信号量. 由于它保持对信号量释放次数的追踪功能,如果任务暂时无法读取数据,数据也不会被丢弃.

2、结论
本文所研究的视频监控系统,是嵌入式技术的典型. 嵌入式系统因其体积小、指令精简、实时性处理能力强、处理速度快、稳定性好、可扩展性好的特点,在专业性、实时性较强的领域中,发挥着重要的作用. 本文采用硬件抽象层分层设计的思想,实现了应用程序与数据链路层设备的无关性,最大限度地实现了软件的复用性. 文中采用FSM 和实现了异步通信的帧同步,这种方法不仅适用于串行通信,而且对于其它通信协议的实现都具有借鉴作用.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭