函数ADS7843_init()实现ADS7843的初始化。读函数Uint32 ADS7843_Read(Uint8 Number)读触摸点值并返回Number位测量结果。写函数Void ADS7843_Send(Uint8 command)发送控制字给ADS7843。函数Void Read_Touch(Uint32 *X, Uint32 *Y)功能为读取触摸屏的触摸位置,结果保存在X,Y指针变量中。ADS7843_init( )代码如下:
Void ADS7843_init(Void)
{PINSEL0= PINSEL0&OX0FFFFFFF;
//设置CS PENIRQ为GPIO口
PINSEL1= PINSEL1&OXFFFFFF03;
//设置DIN DOUT DCLK为GPIO口
IO0DIR=IO0DIR|CS|DCLK|DIN; //CS、DCLK、DIN为输出
… …
IO0DIR=IO1DIR&(~BUSY); //BUSY为输入
}
6.2 基于Nios II的SDRAM驱动和LCD实现
使用Nios II软核对LCD进行驱动时,片内的存储器资源一般满足不了系统的设计要求,系统使用片外SDRAM作为程序存储器和数据存储器。SDRAM控制器内核为FPGA片外的SDRAM提供一个Avalon_MM接口,SDRAM控制器内核可以与多个SDRAM相连,并处理所有的SDRAM的协议请求。使用Avalon_MM总线访问SDRAM控制器内核时, 可以通过函数IOWR(BASE、REGNUM、DATA)和IORD(BASE、REGNUM)进行读写操作。
在设计中实现的主要操作有:LCD模块的检测闲忙、初始化、显示字符、显示汉字、打点、画线和画图等,并将这些操作设计成相应的函数。显示汉字流程如下:首先通过公式转换计算,定位对应的点阵信息在字模库的地址;然后从字库中取出该汉字点阵信息,将这些信息送到显示缓冲存储器中;最后显示器的控制器把点阵信息整屏顺次读出,即可将汉字显示出来[6]。
6.3 计算机与ARM通信的实现
AT91SAM7S64的USB接口与USB2.0全速标准兼容,通信速率12 Mb/s[7]。包含4个端点,端点0是8 B,端点1和端点2是64 B,端点3是64 B。USB接口电路如图8所示。
在打开USB端口时,可通过一个AT91_USB_Open()函数来实现。
Void AT91_USB_Open(Void)
{AT91C_BASE_CKGR->CKGR_PLLR|= AT91C_CKGR_US
BDIV_1; //设置USB锁相环驱动
AT91C_BASE_PMC->PMC_SCER = AT91C_PMC_UDP;
…
AT91_PIO_Cfgoutput(AT91C_BASE_PIOA,AT91C_PIO_
PA16); //设置PIO模式及配置输出
AT91_PIO_Clearoutput(AT91C_BASE_PIOA,AT91C_PIO_
PA16); //给上拉电阻清0
AT91_CDC_Open(&PCDC,AT91C_BASE_UDP);
//通过CDC结构初始化CDC设备
}
StatIC uint AT91_UDP_Write(AT91PS_CDC Pcdc,const char *pdata,uint length)函数用于USB端口的数据发送,每一次发送都按照数据包的形式发送。
Static uint AT91_UDP_Read(AT91PS_CDC Pcdc, char *pdata, uint length)函数用于USB端口的数据读取,在读的过程中,依次把接收到的数据写入缓冲区中。
Atmel公司为AT91SAM7S64ARM处理器的USB端口提供了动态链接库DDL,同时还提供了一个PC端通用INF驱动配置文件atm6124.inf,可以直接使用它们实现PC端的应用。
6.4 系统程序设计及工作控制界面的实现
视觉自动对准系统程序整体流程为图9所示。
系统具有成型、分离和成品自动入管功能,自动化水平和生产效率很高。机台成型与分离速度达到140次/min,相比传统的40次/min~60次/min的产品速度明显提高。马达驱动机械凸轮带动冲头传送料片机构同步成型与分离机台设计,先进的闭环随动驱动和定位技术,定位精度极高,误差小于0.007 mm。CCD图像识别装置辨识产品方向性,脚数、外型检测判断,随着料片的不同,模具可供选择配用,提高了产品的合格和优秀率。配有让门设计,反应快速有效,并配有急刹系统设计,可避免产品及冲模损坏。系统的应用价值较高。
参考文献
[1] 胡必武,余成. 高速集成电路切筋系统设计[J].电子与封装,2009(05):24-27.
[2] 梁锡汉. 自动贴片视觉系统的研究与设计[J].工业控制计算机,2005(05):61-62.
[3] 李立,金华标,陈智君. 基于FPGA和DSP的高分辨率图像采集系统[J] 数据采集与处理,2008(01):117-122.
[4] 史蕊,蔡浩,王振. 基于S3C4480X+uCOSⅡ的触摸屏设计[J].电测与仪表,2007(02):50-53.
[5] 葛化敏,郑静,杨利青. 基于ARM-Linux的LCD显示模块设计[J].仪表技术与传感器,2009(07):75-77.
[6] 黄菊生,周慧,谭季秋.单片机仿真实验仪在汉字LCM开发中的应用[J].湖南工程学院学报,2005(02):41-44.
[7] 叶文良. 基于ARM的嵌入式小型飞行参数测试系统的设计[D].南京:南京航空航天大学,2008.