用于天文观测的CCD相机系统的研究
我们用VHDL编制CCD时钟驱动信号、图像暂存RAM和接口扩展芯片8255的地址译码和片选信号,在集成开发环境MAXPLUS II中编译,通过JTAG口下载到EPM7128SLC84-15中。下面给出实现CCD系统时序部分VHDL语言设计和时序仿真结果。VHDL语言编程基本上分为2个部分:实体说明和结构体定义。实体说明部分定义端口,结构体中实现逻辑设计。程序如下:
LIBRARY ieee; --包括的库
USE ieee.std_logic_1164.all;
USE ieee.std_LOGIC_ARITH.ALL;
USE ieee.std_logic_unsigned.all;
ENTITY kodak7128 IS --实体说明部分
PORT --端口
( clk:IN std_logic; 时钟输入
start:IN STD_LOGIC; --启动采集数据输入
rc:OUT STD_LOGIC; --启动A/D变换输出
s1,s2,s3,s4:OUT STD_LOGIC; --相关双采样模式时钟输出
v1:OUT STD_LOGIC; --CCD行转移时钟输出
v2:OUT STD_LOGIC;
r :OUT STD_LOGIC;--CCD复位始终输出
h1:OUT STD_LOGIC;--CCD像素转换时钟信号输出
h2: OUT STD_LOGIC;
a,b,c:IN STD_LOGIC; --扩展RAM译码输入
a2,a3,a4,a5,a6,a7:IN STD_LOGIC; --口扩展芯片8255地址译码片选输入
a8,a9,a10,a11,a12,a13,a14,a15 : IN STD_LOGIC;
ram5,ram6,ram7:OUT STD_LOGIC; --扩展RAM及8255片选译码输出
ram8,ram9,ram10,ram11,ram12,cs8255:out std_logic);
ARCHITECTURE mboard OF kodak7128try IS-结构体实现部分
--PROCESS定义逻辑
END mboard;
时序仿真结果如图5所示。
2.2 下位机的汇编语言编程
89C51作为电路板上的灵魂,负责接收计算机传来的命令,管理CCD数据的采集、接收、传送。与计算机的通信通过串行口中断实现,数据的采集通过外中断实现。
事先需要定义好计算机与单 牒同的通信协议,在初始化程序中设置通信波特率、堆栈初始化以及寄存器初值,然后进入循环,等待中断的发生,调用中断子程序,实现预定功能。