毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于EasyARM615的家居智能环境控制系统 第11页

更新时间:2014-6-28:  来源:毕业论文

基于EasyARM615的家居智能环境控制系统 第11页
一方面PC通过RS232/485总线将数据传送给MCU处理器,处理器将数据包进行适当处理后送给射频模块发送出去;另一方面,射频模块将接收到的数据送给MCU处理器,处理器经过解包处理后再通过RS232/485总线将数据送给开发板。
计算机与外部设备的连接,基本上使用了两类接口:串行接口与并行接口。并行接口是指数据的各个位同时进行传送,其特点是传输速度块,但当传输距离远、位数又多时,通信线路变复杂且成本提高。串行通信是指数据一位位地顺序传送,其特点是适合于远距离通信,通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本。串行通信又分为异步与同步两类。UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)正是设备间进行异步通信的关键模块。它的重要作用如下所示:
(1)处理数据总路线和串行口之间的串/并、并/串转换;
(2)通信双方只要采用相同的帧格式和波特率,就能在未共享时钟信号的情况下,仅用两根信号线(Rx和Tx)就可以完成通信过程;
(3)采用异步方式,数据收发完毕后,可通过中断或置位标志位的方式通知微控制器进行处理,大大提高微控制器的工作效率。
Stellaris(群星)系列ARM的UART具有完全可编程、16C550型串行接口的特性(但是并不兼容)。Stellaris系列ARM含有1至3个UART模块。每个UART都具有以下特性:
独立的发送FIFO和接收FIFO(First-In First-Out,先进先出)
􀁺 FIFO长度可编程,包括提供传统双缓冲接口的1字节深的操作
􀁺 FIFO触发深度为:1/8、1/4、1/2、3/4、7/8
􀁺 可编程的波特率发生器,允许速率高达3.125Mbps(兆位每秒)
􀁺 标准的异步通信:起始位、停止位和奇偶校验位
􀁺 检测错误的起始位
􀁺 线中止(Line-break)的产生和检测
􀁺 完全可编程的串行接口特性:
􀂄 5、6、7或8个数据位
􀂄 偶校验、奇校验、粘着或无奇偶校验位的产生/检测
􀂄 产生1或2个停止位(使用2个停止位可以降低误码率)
􀁺 某些型号集成IrDA串行红外(SIR)编码器/解码器,具有以下特性:
􀂄 用户可以根据需要对IrDA串行红外(SIR)或UART输入/输出端进行编程
􀂄 IrDA SIR编码器/解码器功能模块在半双工时其数据速率可高达115.2Kbps
􀂄 位持续时间(bit duration)为3/16(正常)或1.41~2.23μs(低功耗)
利用《Stellaris外设驱动库》配置UART的方法是采用函数UARTConfigSet( )。以UART0为例,设置波特率为9600、数据位8、停止位1、无校验的方法如下:
UARTConfigSet(UART0_BASE,9600,UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE |            
UART_CONFIG_PAR_NONE);       

发送时,数据被写入发送FIFO。如果UART被使能,则会按照预先设置好的参数(波特率、数据位、停止位、校验位等)开始发送数据,一直到发送FIFO中没有数据。一旦向发送FIFO写数据(如果FIFO未空),UART的忙标志位BUSY就有效,并且在发送数据期间一直保持有效。BUSY位仅在发送FIFO为空,且已从移位寄存器发送最后一个字符,包括停止位时才变无效。即UART不再使能,它也可以指示忙状态。BUSY位的相关库函数是UARTBusy( )。
在UART接收器空闲时,如果数据输入变成“低电平”,即接收到了起始位,则接收计数器开始运行,并且数据在Baud16的第8个周期被采样。如果Rx在Baud16的第8周期仍然为低电平,则起始位有效,否则会被认为是错误的起始位并将其忽略。
如果起始位有效,则根据数据字符被编程的长度,在Baud16的每第16个周期对连续的数据位(即一个位周期之后)进行采样。如果奇偶校验模式使能,则还会检测奇偶校验位。
最后,如果Rx为高电平,则有效的停止位被确认,否则发生帧错误。当接收到一个完整的字符时,将数据存放在接收FIFO中。
一、关于UART的配置
函数UARTConfigSetExpClk( )用来对UART端口的波特率、数据格式进行配置。函数UARTConfigGetExpClk( )用来获取当前的配置情况。参见表4-7和表4-8的描述。在实际编程时,往往用两个形式更简单的宏函数UARTConfigSet( )和UARTConfigGet( )来代替上述两个库函数。参见表4-9和表4-10的描述。
表4-7 函数UARTConfigSetExpClk( )
函数功能 UART配置(要求提供明确的时钟速率)
函数原型 void UARTConfigSetExpClk(unsigned long ulBase,
unsigned long ulUARTClk,
unsigned long ulBaud,
unsigned long ulConfig)
参    数 ulBase:UART端口的基址,取值UART0_BASE、UART1_BASE或UART2_BASE
ulUARTClk:提供给UART模块的时钟速率,即系统时钟频率
ulBaud:期望设定的波特率
ulConfig:UART端口的数据格式,取下列各组数值之间的“或运算”组合形式:

数据字长度
UART_CONFIG_WLEN_8 // 8位数据
UART_CONFIG_WLEN_7 // 7位数据
UART_CONFIG_WLEN_6 // 6位数据
UART_CONFIG_WLEN_5 // 5位数据

停止位
UART_CONFIG_STOP_ONE // 1个停止位
UART_CONFIG_STOP_TWO // 2个停止位(可降低误码率)

校验位
UART_CONFIG_PAR_NONE // 无校验
UART_CONFIG_PAR_EVEN // 偶校验
UART_CONFIG_PAR_ODD // 奇校验
返 回 值 无

表4-8 函数UARTConfigGetExpClk( )
函数功能 获取UART的配置(要求提供明确的时钟速率)
函数原型 void UARTConfigGetExpClk(unsigned long ulBase,
unsigned long ulUARTClk,
unsigned long *pulBaud,
unsigned long *pulConfig)

 << 上一页  [11] [12] [13] [14] [15] [16] 下一页

基于EasyARM615的家居智能环境控制系统 第11页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。