s3c2410串口控制器原理与编程
- 格式:ppt
- 大小:1.99 MB
- 文档页数:32
实验2 S3C2410GPIO控制实验一、实验目的1.熟悉ADS1.2 开发环境,正确使用仿真调试电缆进行编译、下载、调试。
2.了解S3C2410 的通用I/O 接口,3.掌握I/0 功能的复用并熟练的配置,4.对相应I/0接口进行编程实验,控制实验箱LED 灯点亮。
二、实验设备硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。
软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+ARM-LINUX 开发环境。
三、预备知识S3C2410 CPU 共有117个多功能复用输入输出口,分为8组端口:●4个16位的I/O端口(PORT C、PORT D、PORT E、PORT G)●2个11位的I/O端口(PORT B 和PORT H)●1个8位的I/O端口(PORT F)●1个23位的I/O端口(PORT A)这些通用的GPI/O接口,是可配置的, PORTA除功能口外,它们仅用作输出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。
配置这些端口,是通过一些寄存器来实现的,这些寄存器均有各自的地址,位长32位。
往该地址中写入相应的数据,即可实现功能及数据配置。
GPACON (0x56000000) //Port A controlGPADAT (0x56000004) //Port A dataGPBCON (0x56000010) //Port B controlGPBDAT (0x56000014) //Port B dataGPBUP (0x56000018) //Pull-up control BGPCCON (0x56000020) //Port C controlGPCDAT (0x56000024) //Port C dataGPCUP (0x56000028) //Pull-up control CGPDCON (0x56000030) //Port D control GPDDAT (0x56000034) //Port D data GPDUP (0x56000038) //Pull-up control D GPECON (0x56000040) //Port E control GPEDAT (0x56000044) //Port E data GPEUP (0x56000048) //Pull-up control E GPFCON (0x56000050) //Port F control GPFDAT (0x56000054) //Port F data GPFUP (0x56000058) //Pull-up control F GPGCON (0x56000060) //Port G control GPGDAT (0x56000064) //Port G data GPGUP (0x56000068) //Pull-up control G GPHCON (0x56000070) //Port H control GPHDAT (0x56000074) //Port H data GPHUP (0x56000078) //Pull-up control H 现用C口举例说明。
第4章基于S3C2410的硬件结构与接口编程1234.7.3 S3C2410X UART工作原理1.UART的工作机制下面介绍UART的一些工作机制,包括数据发送、数据接收、中断产生、波特率发生等、回环(loop-back)模式、红外模式、自动流控制等。
(1)数据发送发送数据的帧结构是可编程的,它由1个起始位、5~8个数据位、1个可选的奇偶位和1~2个停止位组成,这些可以在线控制寄存器ULCONn中设定。
接收器可以产生一个断点条件—使串行输出保持1帧发送时间的逻辑0状态。
当前发送字被完全发送出去后,这个断点信号随后发送。
断点信号发送之后,继续发送数据到Tx FIFO(如果没有FIFO则发送到Tx保持寄存器)。
(2)数据接收与数据发送一样,接收数据的帧格式也是可编程的。
它由1个起始位、5~8个数据位、1个可选的奇偶位和1~2个停止位组成,这些可以在行控制寄存器ULCONn中设定。
接收器可以探测到溢出错误和帧错误。
溢出错误:在旧数据被读出来之前新的数据覆盖了旧的数据。
帧错误:接收数据没有有效的停止位。
当在3个字时间(与字长度位的设置有关)内没有接收到任何数据并且Rx FIFO非空时,将会产生一个接收超时条件。
(3)自动流控制(AFC)S3C2410X的UART0和UART1通过n RTS and n CTS信号支持自动流控制,如连接到外部UART时。
如果用户希望将UART连接到一个MODEM,可以在UMCON n寄存器中禁止自动流控制,并且通过软件控制nRTS信号。
在AFC时,n RTS由接收器的状态决定,而n CTS信号控制发送器的操作。
只有当n CTS信号有效的时候(在AFC时,n CTS意味着其他UART的FIFO准备接收数据)UART发送器才会发送FIFO中的数据。
在UART接收数据之前,当它的接收FIFO多于2字节的剩余空间时n RTS必须有效,当它的接收FIFO少于1字节的剩余空间时n RTS必须无效(n RTS意味着它自己的接收FIFO开始准备接收数据)。
S3C2410触摸屏驱动程序原理图本文介绍了基于三星S3C2410X微处理器,采用SPI接口与ADS7843触摸屏控制器芯片完成触摸屏模块的设计。
具体包括在嵌入式Linux操作系统中的软件驱动开发,采用内核定时器的下半部机制进行了触摸屏硬件中断程序设计,采用16个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。
设计完成的触摸屏驱动程序在博创公司教学实验设备UP-NETARM2410-S平台上运行效果良好。
引言随着信息家电和通讯设备的普及,作为与用户交互的终端媒介,触摸屏在生活中得到广泛的应用。
如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式系统设计者需要考虑的问题。
本文主要介绍在三星S3C2410X微处理器的硬件平台上进行基于嵌入式Linux的触摸屏驱动程序设计。
硬件实现方案SPI接口是Motorola推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏控制器。
本文采用SPI接口的触摸屏控制器ADS7843外接四线电阻式触摸屏,这种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏控制器间的通讯时间大大减少,提高了微处理器的效率。
ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。
图1触摸屏输入系统示意图嵌入式Linux系统下的驱动程序设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。
Linux 的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。
应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。
为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。
s3c2440工作原理
S3C2440是一款ARM11核心的微处理器,其工作原理可以概括为以下几
个方面:
1. 地址空间管理:S3C2440的存储器控制器具有大小端模式选择、可编程
的访问位宽、8个存储器banks等特点。
每个bank有128M 的字节(总
共1G字节/8个banks)。
其中,前6个存储器bank(bank0-bank5)可以是ROM、SRAM等类型的存储器,而后两个存储器bank(bank6-
bank7)则可以作为ROM、SRAM、SDRAM等类型的存储器。
2. 数据传输方式:S3C2440提供了三个UART端口,每个UART端口都可以通过查询、中断和DMA方式传输数据。
当发送数据时,CPU先将数据写入发送FIFO中,然后UART会自动将FIFO中的数据复制到“发送移位器”中,发送移位器将数据一位一位地发送到TXDn数据线上。
接收数据时,“接收移位器”将RXDn数据线上的数据一位一位地接收进来,然后复制到接收FIFO中,CPU即可从中读取数据。
3. 寄存器配置:S3C2440的UART有3个独立通道,每个通道支持的停止位有1位、2位,数据位有5、6、7、8位,支持校验功能,另外还有红外发送/接收功能。
这些功能通过相应的寄存器进行配置。
以上信息仅供参考,如需了解更多信息,建议查阅S3C2440的硬件手册或相关技术文档。
项目二串口通讯
姓名:学号:班级:
一、实训任务
1、了解异步串行方式的特点
2、通过实验掌握串行数据通信协议的使用。
3、通过实验掌握S3C2410X 处理器的使用
二、实训内容
1、编写一个S3C2410X处理器的串口通信程序,监视串行口UART0动作,将从
UART0接收到的字符串回送显示。
2、2、写入EEPROM 某一地址,再从该地址读出,输出到超级终端;把读出内
容和写入内容进行比较,检测S3C2410X 处理器通过ic接口,是否可以正常读写。
三、实训过程
1、原理图
2、流程图
打开MDK下的int_test工程,观察发送和接收的函数设定,以便主程序中调用。
#include "uart_test.h"
#include "sys_init.h"
main( )
{
unsigned char data;
sys_init(); /* Initial s3c2410's Clock, MMU, Interrupt,Port and UART */ uart_init(0,9600,UART0); //调用函数
while(1)
{
data=uart_getch(); //接收函数
uart_sendbyte(data); //发送函数
}
}
在PC上运行调试并将硬件的串口线接好,输入想要发送的数字,并以回车键作为发送字符串的结尾标志,观察实验结果。
四、实训体会
本次实验主要是调用例程的程序在主程序中应用,减少了大量的程序编写,同时应该注意程序中设置的波特率应与调试串口的端口设置对应。
S3C2410接口之看门狗控制器原理与编程1.看门狗:是一种电路,具有监视并恢复程序正常运行的功能,从而达到增强系统的稳定性。
它本质上是一种定时器电路2.稳定性和定时器之间有什么样的关系呢?3.看门狗增强系统稳定性的基本原理:设一系统程序完整运行一周期的时间是Tp,看狗的定时周期为Ti,要求Ti>Tp。
在程序运行一周期后,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。
若由于干扰等原因使系统不能在Tp 时刻修改定时器的计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。
s3c2410的看门狗控制器S3C2410 的看门狗定时器有两个功能:(1)定时器功能:可以作为常规定时器使用,它是一个十六位的定时器,并且可以产生中断,中断名为INT_WDT,中断号是0x09。
(2)复位功能:作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个时钟周期的复位信号。
S3C2410 ARM9的看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。
S3C2410 ARM9的看门狗工作原理:PCLK 经过预分频、再分频,使得到达看门狗的频率能够没有那么高,这样看门狗才处理得了。
•S3C2410 看门狗定时时间预分频器为8位,其值为:0---255再分频器可选择值为:16、32、64、128输入到计数器的时钟周期为:T_wtd=1/[PCLK/(Prescaler+1)/Division_factor]看门狗的定时周期为:T=WTDAT(看门狗的计数器的初值)×T_wtd•S3C2410 看门狗的特殊功能寄存器:(共3个,其基地址为0x53000000)•••s3c2410的看门狗控制器编程步骤•1初始化看门狗控制器•时钟设置、输出类型设置设置:给WTCON相应位赋值;•计数器初始值设定:给WTCNT相应位赋值;•数据寄存器赋值:给WTDAT相应位赋值;•2如果把看门狗作为一个普通的定时器使用,还必须把看门狗定时中断处理程序填入中断向量表中,并相关的中断控制相关寄存器初始化;•3使能看门狗控制寄存器:给WTCON相应位赋值(必须在完成上面的工作之后才使能看门狗控制寄存器)例:编写一程序,利用S3C2410看门狗中断产生频率为1kHz的方波,并且从GPB0引脚输出。