的串口通信软件.pdf
《的串口通信软件.pdf》由会员分享,可在线阅读,更多相关《的串口通信软件.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 Rabbit 2000 的串口通信软件 介绍 串口通信是机器通信中应用最早也是最广泛的一种方式 它的基本概念是把一组数据分成单个的比特位 然后通过一个单独的数字通道把比特一位一位发出去 许多串口依靠时钟通道来协调每个比特的发送这些接口称为同步接口然而大多数串口只是在固定的时间断发送比特 接收端可以在同样的时间断对这些发送序列进行采样并重新得到这些比特 这些串口称为异步串口最常见的异步串口是 RS232 和 RS485所有的这些串口使用同演的数据格式仅仅只在电气说明上有所不同数据格式我们称为 SPIserial peripheral interface串口外围接口由一个开始位后面跟着的 7 到
2、 9 位比特以及一位和 2 位停止位高1组成当通信线路空闲时它处于高1的状态因此停止位可以被认为是要传送字节间最短的空闲时间在大多数情况下只有 7 到 8 位的数据比特包含实际的数据如果存在附加位的话被用来作校验位或者用来在信息包协议中作一帧的信号位Rabbit 的串口驱动可以被设定成能够使用大多数的选项 两种串口的支持软件可以应用在Rabbit上 循环缓冲程序或者是信息包驱动 所有4个Rabbit串口的循环缓冲区程序包含在所有的 Dynamic C 的版本中 当处于写的模式时 只有串口 D采用信息包驱动程序而且驱动程序只有版本 但是它将很快就能应用于所有常规 Dynamic C 的版本中的所
3、有串口中 可以在本技术解答中的压缩文件中得到使用的信息包驱动库和例题程序 电路缓冲区实现 电路缓冲串口程序最好的应用是 RS232 串口驱动中断服务要求的中断时间在发送一个字节时是 500 个周期 在接收一个字节时是 400 周期 串口驱动需要线路的缓冲区来临时放置准备发送的数据以及已经接收但没有处理的数据缓冲区的默认大小设定为 31 字节这个大小可以由宏定义 XINBUFSIZE 和 XOUTBUFSIZE 来改变这里 X 代表串口ABC或者 D有效的缓冲区大小是 2n 1(比如153163127)使用非 Cofunction 程序 在串口的库里 标准的发送和接收程序直到完成才能返回 或者在
4、接收程序中当延时发生时程序才能返回这些函数依靠全局变量它们都是不可重入的因此当在 uC/OS-II 或其他的优先多任务系统中使用这些函数时 一个时间只有一个进程能在特定的串口使用 另外串口的库和 uC/OS-II 是兼容的下面是非 Cofunction 发送和接收程序的列表它们完整的描述可以在 Dynamic C Premier Users Manual 中找到 serXgetc serXread serXpeek serXputc serXputs serXwrite 上述每个函数中X 代表 ABC 或者 D对应于指定的串口 使用 Cofunction 程序 完整的 Cofunction 设
5、置存在于串口发送和接收程序中 当等待一个操作完成时这些程序会让步于其他的程序 在一个设定的时间后如果没有接收到任何字符 则接收函数利用超时来退出程序关于优先多任务系统这些函数也被认为是不可重入的所以在一个特定的串口只能有一个任务可以访问 下面是 Cofunction 发送和接收程序的列表 它们完整的描述可以在Dynamic C Premier Users Manual 中找到 cof_serXgetc cof_serXgets cof_serXread cof_serXputc cof_serXputs cof_serXwrite 奇偶校验位和停止位 串口驱动可以被设置成下面 3 种形式的任意
6、组合 7 或 8 位数据格式 奇校验偶校验或者没有校验 1 或 2 位停止位 默认的格式是 8 位数据位和一个停止位这就总共有 9 位如果需要第 10 位那么传送它的时候需要一些特殊的处理如果第 9 位是低位第 10 位要用硬件进行处理处理方法是将一个字节写入特定的交换端口如果第 9 位是高位要采用一个个特殊的延迟方法通常停止位用于第 9 位高位数据位 一旦这个字节发送完毕为另一个字节创建了一个空闲状态后发送器变得无效这样在长的停止位后就创建了一个高位第 9 位不幸的是这就降低了数据的吞吐量会引起硬件问题而这对于数据流之间的间隙是非常敏感的接下来要描述的串口库为半双工的通信提供了关于这个问题的
7、解决方案 以下是模式配置函数的列表它们完整的描述可以在 Dynamic C Premier Users Manual 中找到 serXparity serXdatabits 流量控制 经常有这种情况 系统不能以接收数据的速率来处理到达的数据 在处理能力上缓冲区能够处理较短的失误但是如果接收端不能一直持续接收数据缓冲区会被填满当接收端能够 处理接收数据时它对信号的处理方法被称为流量控制流量控制的两个基本方法是XON/XOFF 方法和硬件方法XON/XOFF 方法指定了两个字节值它们分别为 XON 信号和 XOFF当接受端不能处理多余的数据时它会发送一个 XOFF 控制字节当接收端再次能够接收数据
8、时它发送一个 XON 字节显然发送的数据不能包含在控制字节种硬件流量控制依赖于附加的信号行RTS 和 CTS当数据发送时这些信号行位于两个系统中进行标示 流量控制的实现 Rabbit 的串口驱动实现串口流量控制驱动器被设定为 DTEdata terminal equipment 数据终端设备意味着当准备好发送数据时 RTS 被 Rabbit 声称为输出量 而 CTS 则是输入量负责监视当 Rabbit 连接上以后系统的准备状态 流量控制线 RTS/CTS 通常用宏定义#define进行配置以此来指定那个端口和具体的那个位要使用下面是对串口 D 进行 RTS/CTS 配置的例子#define S
9、ERD_RTS_PORT PDBR#define SERD_RTS_SHADOW PBDRShadow#define SERD_RTS_BIT 6#define SERD_CTS_PORT PBDR#define SERD_CTS_BIT 5 可实现的波特率 附录波特率的速度测试表示了两种不同速度的 Rabbit 底板在不同的情况下速度测试的结果 最高的实际标准波特率依赖于一些因素 比如中断的等待时间影响其他中断驱动的执行 信息包库的实现 对于 Dynamic C 7.03信息包驱动功能只对串口 D 是可用的而且只能在模式下这个技术解答的压缩文件中能找到程序代码要使用信息包驱动库必须在文件 L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串口 通信 软件
限制150内