碧波液压网 欢迎你,游客。 登录 注册

一个点到点的邮件系统设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  引 言

  大量嵌入式设备已经进入人们的日常生活和工作中,人们对嵌入式设备的要求越来越高,功能也越来越复杂。笔者与一个嵌入式硬件制造商合作,为其嵌入式电话产品建立了一个软件系统,包括操作系统、驱动程序和一系列应用软件。其中点到点邮件收发系统是一个有明显特色的应用。

  本系统是一个基于串口通信的点到点邮件收发软件。运行在嵌入式系统上的邮件收发程序通过Modem以拨号方式连上远端的嵌入式系统,然后进行邮件发送工作。系统结构如图1所示。

  从用户角度看,其发送流程与普通的电子邮件差不多。用户在编辑好邮件以后,在收信人一栏中填入对方的电话号码,点击发送,系统就会把邮件发送给对应电话号码的远端用户处,当然远端也必须接有同样的嵌入式系统。

  系统运行在基于ARM的S3C2410芯片嵌入式目标板上[1]。操作系统是定制的嵌入式Linux,图形界面使用Qt/Embedded支持。

  1 系统的构架

  系统主要由数据传输、邮件编码、邮件管理和用户界面四部分组成。由于要时刻监视串口的状态,所以系统要一直处于运行状态。但由于嵌入式系统的内存资源和计算资源有限,要尽量减少程序运行时带给整个系统的负载,采用了两层的设计结构,分别叫作服务层和用户层。服务层负责数据传输和邮件编码,用C语言编写,生成的可执行文件较小,一直处于运行状态;用户层负责邮件的管理和用户界面,用C++配以Qt/Embedded编写,由于有大量的界面元素,所以其可执行文件较大,只有用户需要查看和发送邮件时才运行。这样就可以大大减少占用的资源,使整个系统具有更快的速度。

  用户层与服务层的通信分两个方面:一方面,当用户层运行时通过信号和共享内存实现实时通信;另一方面,当用户层没有运行时,用文件暂存收到的邮件,在用户层运行后,再由它通知用户。

  当需要发送邮件时,用户层先把本地邮件拷贝到共享内存中,然后发送信号通知服务层,服务层接收到信号后,把邮件取出、编码和发送。在发送过程中,为了让用户看到发送的进度,服务端把状态信息放在共享内存中,然后发送信号通知用户层更新状态。当接收邮件时,若用户层没有运行,则把收到的邮件解码后暂存到文件中;若用户层运行着,则服务层通过共享内存和信号不断把接收进度传递给用户层,使其显示给用户,但此时并不会把邮件数据传给用户层,因为此时的邮件数据是经过编码的,等所有数据都接收结束后,服务层才会把邮件解码成本地邮件,然后再传送给用户层保存、显示。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论