基于ARM的嵌入式的多功能串口通信

 

1、  系统功能描述

硬件平台是基于ARM9内核的S3C2440平台,软件平台是linux操作系统里的基于gcc的交叉编译工具arm-linux-gcc、arm-linux-ld等。利用上位机的超级终端与用户交互。系统的主要功能是:开机后,在超级终端上显示一个功能主菜单,然后用户利用计算机键盘来输入数字字符进行功能选择。当按下1号键后,会进入第一个子系统。这个子系统主要是通过四个独立按键来控制四个LED的亮灭。当按下2号键后,会进入第二个子系统,这个子系统主要是实现流水灯功能。LED灯亮表示二进制数“1”,灯灭表示二进制数“0”。这样,利用四个LED灯来表示四位二进制数从0到15循环累加。当按下3号键后,会进入第三个子系统,这个子系统主要是实现文本输入和显示的功能。通过计算机键盘输入一些字符,然后显示在终端上。

2、  硬件部分设计及功能描述

1)LED电路如下:

  

四个LED共阳极,阴极部分分别连到S3C2440的端口B的管脚5、6、7、8。这样,当端口B的这几个管脚设置成IO输出工作方式时,我们就可以通过写端口B的数据寄存器来控制这四个LED的亮灭了。当端口B数据寄存器第五位为0时,LED1亮,反之则灭。其他依次类推。

 

2)独立按键电路如上:

四个独立按键共阴极,另一端分别连接到S3C2440的端口F的管脚1、4、2、0。另外,均加一个10K上拉电阻。这样,当我们把端口F的1、4、2、0管脚设置成IO输入工作方式时,我们就可以通过读取端口F的数据寄存器来判断某个按键是否按下。当端口F的数据寄存器的第一位为0时,表示按键1按下,反之,表示按键1松开。其他依次类推。

 

3)通用异步收发器

S3C2440通用异步接收器和发送器(UART)提供了三个独立的异步串行I/O(SIO)端口,每个端口都可以在中断模式或DMA模式下操作。换言之,UART 可以生成一个中断或DMA 请求用于CPU 和UART 之间的数据传输。UART 使用系统时钟可以支持最高115.2Kbps 的波特率。如果一个外部设备提供UEXTCLK 给UART,UART 可以在更高的速度下工作。每个UART 通道对于接收器和发送器包括了2 个64 位的FIFO。每个UART 包含一个波特率发送器,发送器,计数器和一个控制单元,其特率发生器可由PCLK,FCLK/n 或UEXTCLK(外部输入时钟)来锁定。发送器和接收器包含了64 位FIFO 和数据移位器。数据写到FIFO 然后在被传送前拷贝到发送移位器。数据通过发送数据引脚(TxDn)被发出。同时,接收数据通过接收数据引脚(RxDn)移入,然后从移位器拷贝到FIFO。

其特点如下:

- 基于DMA 或中断操作的RxD0,TxD0,RxD1,TxD1,RxD2 和TxD2

- 有红外和64 位FIFO 的UART 通道0 和1

- 有nRTS0,nCTS0,nRTS1 和nCTS1 的UART 通道0 和1

- 支持握手的发送和接收其特点

模块图如下:

数据发送:发送的数据帧是可编程的。其包括一个开始位,5~8 个数据位,一个可选的奇偶校验位和1~2 个停止位,其可由线性控制寄存器ULCONn 来设置。发送器也可以产生一个终止条件,其可以对一个帧发送时间强制串行输出为逻辑0。在当前发送字被完全传输完以后,该模块发送一个终止信号。在终止信号发送后,其串行发送数据到TxFIFO。

数据接收:如数据发送,接收的数据帧是可编程的。其包括一个开始位,5~8 个数据位,一个可选的奇偶校验位和1~2 个停止位,其可由线性控制寄存器ULCONn 来设置。接收器可以侦测溢出错误,奇偶校验错误,帧错误和终止条件,每个错误都可以设置一个错误标志。

- 溢出错误是指在旧数据被读取前新数据覆盖了旧数据。

- 奇偶校验错误是指接收器侦测到一个不希望的奇偶条件。

- 帧错误

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值