盐城师范学院毕业设计
间可以重叠,所以转换速率可以提高到每次16个时钟周期[12]。ADS7843的控制流程如图2-4所示。
按触摸屏 PENIRQ置为低电平 向S3C44B0X发送中断请求 S3C44B0X响应中断,将CS置低 向ADS7843串行送人测量控制字 调ADS7843测量程序测量坐标 串行读出坐标值,将CS置高 返回 图2-4 ADS7843 控制流程图
3 软件设计
3.1驱动程序实现流程
15
盐城师范学院毕业设计
本设计是通过THUS-1型嵌入式(ARM)实验/开发系统来完成的。驱动控制电路软件设计中最为关键的就是根据ADS7843芯片内部原理及时序关系控制其实现对XY坐标的采集,同时将信息通过RS232串行通信发送到计算机上[13]。触摸屏驱动程序实现流程如图3-1所示。
开始 触摸屏的初始化 N 内核线程判断是否有触摸动作? Y 读取X/Y的电压值放入相应的数据结构 内核线程判断是否还有触摸动作? N Y 读取触摸结束时X/Y的电压值放入相应的数据结构 其他处理 图3-1 触摸屏驱动程序实现流程
3.2中断处理程序
触摸屏的驱动核心是中断处理程序,响应中断并提供相应服务的程序称为中
16
盐城师范学院毕业设计
断处理程序。在触摸屏驱动中,中断服务程序的主要功能就是加载定时器处理程序和指定执行程序的时间点[14]。定时器处理程序的主要任务为通过ADS7843的X+,X-,Y+,Y-端子分别读取触摸屏X轴和Y轴的A/D转换坐标值,并对其进行判断,获得真实结构,达到对触点定位的目的。定时器处理程序流程如图3-2所示。
开始 设置GPIO[x](x=1,2,...,6)寄存器 有中断 Y N 配置GPIO[x](x=1,2,...,6)寄存器 送接收X坐标A/D转换值的命令字 接收X坐标A/D转换值 送接收Y坐标A/D转换值的命令字 接收Y坐标A/D转换值 N 结果一样 Y 对A/D转换值做处理 返回 图3-2 定时器处理程序流程
17
盐城师范学院毕业设计
3.3 触摸屏按键的坐标算法
ADS7843的转换精度有8位和12位两种,可以精确到X或Y方向上的1/256和1/4096。触摸屏的坐标如图3-3所示。其中,(X,Y)是按键的中心坐标,(X’,Y’)是按键右下角坐标,(X”,Y”)是其左上角的坐标。在触及屏幕时,触点只要在(X’,Y’)和(X”,Y”)矩形区域内均认为是触摸该按键有效[15]。
Y (X”,Y”) (X,Y) (X’,Y’) X 图3-3 触摸屏的坐标
实际采用固定参考电压模式,SER/DFR= 1。程序首先检测PENIRQ是否为低电平,只有当触摸屏有接触时此位才会为低电平。利用软件模拟DIN,DOUT和DCLK上的三线串行传输时序,将读取X或Y坐标值的控制字串行送入 ADS7843,然后再串行读出坐标值。
其中,Test-Touch()函数发送控制字并读取结果,程序流程图如图3-4 所示。
18
盐城师范学院毕业设计
开始 DCLK置低 判断并传送8位控制字 等待一个时钟后开始接收数据 顺序取得DIN上的前11位坐标数据(高位在前) DCLK置高,接收最后1位数据 等待半个时钟周期,DCLK清零 返回接收结果 图3-4 读取坐标流程图
4 触摸屏驱动程序的测试
4.1 测试准备
1) 用并口线正确连接电脑并口和配套仿真器,用14针(或20针)的排线连接仿真器和实验箱的JTAG口;用串口线连接实验箱上的串口1单元与计算机的COM1(或COM2)。
2) 在PC机上运行windows 自带的串口通信程序“超级终端”(波特率为57600、8位数据位、无奇偶校验位、1位停止位、无数据流控制)。
3) 打开系统电源,运行仿真器驱动程序,使用ARM STD2.51集成开发环境打开程序,下载并运行。
4) 在PC上观察“超级终端”主窗口显示。 4.2 运行结果
1) 程序运行时,如图4-1所示。
19