基于Altera FPGA的彩屏控制器的设计和实现(2)
- UID
- 1029342
- 性别
- 男
|
基于Altera FPGA的彩屏控制器的设计和实现(2)
从图2所示的时序图可以看出,当HSYNC电平由低变高,再经过水平回归时间之后,开始进行水平扫描。在水平扫描中,像素的显示受PCLK控制,一个PCLK周期决定了一个像素点的显示。在HSYNC的高电平的驱动下,PCLK将产生480个时钟周期,使图像的像素点在屏幕上从左向右依次逐点输出,完成一行共480个像素点的显示。用Verilog HDL编写的水平同步扫描的时序程序如下: always@(posedge CLK or negedge RST_n) begin
if (RST_n) begin
x_cnt <= 11’d0;
hd<= 1’d0;
end
else if (x_cnt ==479) begin
x_cnt<= 11’d0;
hd<= 1’d0;
end
else begin
x_cnt<= x_cnt + 11’d1;
hd <= 1’d1;
end
end
同理,当VSYNC电平由低变高,再经过垂直回归时间之后,进入垂直扫描。在VSYNC的高电平驱动下,HSYNC将产生272个时钟周期,像素点在屏幕上从上到下依次逐行输出,完成整个图像数据在彩色显示器上的显示。用Verilog HDL编写的同步扫描的时序程序如下:
always@(posedge CLK or negedge RST_n) begin
if (iRST_n)
y_cnt<= 10’d0;
else if (x_cnt == 479) begin
if (y_cnt == 271)
y_cnt <= 10’d0;
else
y_cnt<= y_cnt + 10’d1;
end
end
1.3 ADS7843 芯片控制器的设计
ADS7843 芯片控制器用于将触摸的位置进行数据转换。ADS7843 的时序图如图3 所示。其中,CS 为片选信号, 低电平有效;BUSY 为忙指示信号, 同样低电平有效。
由图3 可看出,ADS7843 标准的一次数据转换需要24 个时钟周期, 每次的数据转换以8 个时钟周期为一次通信, 需要与控制器进行3 次通信。第一次通信是触摸控制模块的DIN 端口通过串口向ADS7843 发送控制字, 同时对X、Y 的电压值进行采集。控制字如表1 所示, 其中,S 为数据传输起始标志位;A2~A0 为通道选择;MODE 为A/D 转换精度控制位;SER/DFR 为参考电压的输入模式[5]。
|
|
|
|
|
|