首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
μC/OS-II基础上实现的无纸传真收发系统
来源:本站整理  作者:佚名  2011-08-21 07:41:24



    4.4 功能模块设计
    本设计自底向上包括如下3个功能模块,如图6所示。底层串口模块、中层数据缓冲区模块和上层传真模块。各个模块由μC/OS-II负责管理,其中底层串口模块包含了所有基于串口的基本操作,包括读串口和写串口等;中层数据缓冲区模块做了大量的细节性数据处理工作;上层传真模块封装了发送传真和接收传真的基本功能。

f.jpg


    4.4.1 底层串口模块
    底层串口模块的代表性函数包括如下3个。
    ①void RxInterrupt_Handler();
    功能说明:fax modem每次接收到数据后都会发生中断,跳入此函数。通过mdm_append_data函数将串口收到的新数据添加到接收缓冲区。
    ②void USART1_SendByre(INT16U byte);
    功能说明:直接向串口中发送一个字节,并等待完成。
    ③void USART1 SendData(INT8U*data,INT16S len);
    功能说明:直接向串口写数据并等待完成,数据长度不限。它被fax_send_cmd函数和fax_send_frame函数多次调用。
    4.4.2 中层数据缓冲区模块
    本模块采用队列来管理数据,如图7所示。底层串口模块收到数据后,将数据存入队尾缓存,上层传真模块从队头取出数据进行处理,这种方式使得程序不必关心串口接收数据的方式,一定程度上减小了程序的耦合性。

g.jpg


    队列的数据结构定义如下:
    h.jpg
    i.jpg
    本模块提供了以下接口函数,供上层传真机模块调用。
    ①void mdm_init_buffer();
    功能说明:本函数用于初始化缓冲区,一般在程序启动时调用。
    ②char*mdm_get_line(int timeout);
    功能说明:在timeout规定的时间里面,等待并读取一行数据(以/r/n结尾),如果超时则返回NULL。
    ③int mdm_get_byte(char*byte,int timeout);
    功能说明:在timeout规定的时间里,等待并读取一个字节的数据,如果有数据则返回1,如果超时则返回0。
    ④int mdm_get_byte_count();
    功能说明:获取当前缓冲区内的数据量,单位为字节。
    ⑤void mdm_clear_buffer();
    功能说明:清空缓冲区的数据。
    ⑥void mdm_append_data(char data);
    功能说明:向缓冲区队尾添加一个数据,该函数在串口接收中断中被调用。
4.4.3 上层传真模块
    上层传真模块分为发送传真接口和接收传真接口两大部分,其中发送部分为1个集成的函数,而接收部分为3个按时序相接的功能分支。
    (1)发送传真接口
    原型说明:im fax_send(char*num,char*page[]);
    功能说明:发送传真,对端的传真号为num,传真文件通过page变量传入,结尾以NULL指针或空字符串结尾。
    (2)接收传真接口
    ①int faX_ringing();
    功能说明:循环检测并接收响铃,只有接通了,才会跳出循环。该函数可以在一个task里面调用,进行传真监听,当收到“RING”时,退出函数,等待应答。
    ②int fax_answer_and_connect();
    功能说明:传真应答与连接。该函数一般在收到“RING”时调用。当连接成功后,即可接收传真。
    ③int fax_receive(int*pagenum,char*dir);
    功能说明:接收传真,收到的传真页数为pagenum,保存地址为dir。只有当连接成功后才能调用该函数。
4.5 传真接口调用示例
    j.jpg

    结语
    本文对无纸传真进行了研究,在该研究的基础上开发出一套实用的系统,其扩展性强,具有很好的移植性。一般的传真机仅限于纸质文件的传输,而本系统则辅助实现了纸质文件与电子版文件的转化传输。本系统存在的意义在于,用户可以将此传真模块作为一个独立功能单元集成到其他产品中,以较低的成本来增加产品的功能。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:56,656.25000 毫秒