1、第三届飞思卡尔智能汽车竞赛摄像头信号处理电路技术报告第三届飞思卡尔智能汽车竞赛摄像头信号处理电路技术报告华中科技大学2008-12-261 前言1.1 选择摄像头方案的原因2007年的第二届freescale全国大学生智能汽车竞赛进入决赛的队伍使用的传感器基本上均为摄像头,且能够得一等奖的队伍平均速度在2m/s以上;1.2 选择数字式摄像头方案的原因优点:1)、数字信号输出,省去了A/D,数据采集看起来方便些; 2)、数字信号抗干扰能力强些;缺点:1)、信号同步处理困难; 2)、数据线太多,增加车体重量; 3)、数字摄像头方案占用的I/O数量太多; 4)、摄像头的处理周期较长(40ms),系统
2、控制的纯延时较大;1 1.1 1.2 1.3 摄像头信号处理电路的目的1 1.1 1.2 1.3 1.3.1 对摄像头输出的同步信号进行分频处理,在降低分辨率、减少数据量;1.3.2 对摄像头数据进行硬件阈值分割,提取有效信息点;1.3.3 对同步信号进行累加计算,将有效点的坐标存入存储器中;1.3.4 提供给单片机一个方便的接口,用于控制摄像头及信号;2 核心器件参数1 2 2.1 S12单片机参数概况freescale MC9S12DG128B 的16位单片机,最高时钟频率:24MHz,可简单超频到40MHz;最快I/O口频率:约500KHz;I/O口:约64个;PWM:8个,输出4路16
3、位PWM;定时器:8个;ADC:16路10位模数转换(2个单独ADC);2.2 OV5017数字式摄像头(dm4088模块)概况图像速度:50帧/s-0.5帧/s(即:20ms/帧-500ms/帧);图像大小:(最大)384*288,可开窗调节大小;感光能力:最小0.5勒克斯(光圈:1.4,速度:50帧/s);一般配置为: 50帧/s不开窗、自动光圈(存在不抗反光的严重BUG);3 摄像头信号处理电路设计思想与方案3.1 设计思想由上面的两个主要元件的性能和比赛的实际要求可知:图像的分辨率越高、处理速度越快越有利于比赛。摄像头最快速率为50帧/s,最大分辨率为384*288,为了方便单片机的处
4、理使横纵坐标极值都在255以内(也就是8位以内,单片机I/O口在8位以内操作比较容易),故将分辨率压缩一半到192*144。但是在50帧/s、192*144的情况下,摄像头每秒输出的信号量为50*192*144=1350 Kbyte,由单片机的测试结果表明,单片机I/O口的极速读速率仅有500 Kbyte/s(单片机时钟频率24MHz),即使单片机超频到40MHz使用,单片机I/O口的极速读速率也仅有833Kbyte/s,而且还不加上片内的坐标累计、阈值比较和图像分析,可见仅用单片机直接和摄像头相连然后直接处理图像是不能让人满意的。但是根据比赛要求的特性我们知道,赛道及外围均为白色的底面,仅有
5、中心引导线为黑色,也就是说摄像头的图像中只有黑色和白色,且白色底面宽度大于60cm,黑色引导线宽度为2.5cm。不考虑图像的畸变,留一定余量,图像中的黑色部分不超过10%,如果我们能够将黑色部分交给单片机处理,则数据量会大幅减少到135 Kbyte/s以下,这样单片机才有可能完成任务。于是我们考虑在摄像头和单片机之间加入一些必要的硬件电路,让硬件帮单片机做一部分的任务,将黑色部分提取后再交给单片机,但是如果仅是将黑色点的灰度值传给单片机是没有用的,因为单片机实际上最需要的是黑色点的坐标,这样就需要在摄像头信号处理电路中就需要完成坐标累计、阈值分割两个任务,最后将黑色点的坐标存进缓存中,单片机再
6、根据定义好的接口和时序读取缓存里的初步处理后的数据进行再精细的处理。3.2 设计方案与元件选择1) 像素、行、帧同步信号分频部分因为分辨率我们选择的是192*144,及隔点记录和隔行记录,所以我们必须对行同步信号和像素同步信号进行分频处理。因为在一帧的20ms内仅能完成信号的预处理然后放入缓存,且实验发现缓存不能一边读一边写,故在单片机读缓存中前一帧数据时不能处理并存储现有帧数据,故摄像头的图像处理为隔帧处理,帧同步信号也需要分频。由学习和经验我们知道使用D触发器和一些必要的门电路可以实现。(特别注意:分频后的同步信号由于经过了一些逻辑器件后产生了时延,其实已经不同步了,这时需要将处理后的不同
7、步的信号再同步,且去掉这中间产生的毛刺,这里面的电路比较复杂,后面会详细介绍)。2) 摄像头数据阈值比较部分因为我们要提取黑色点,且关注的是黑色点的坐标,所以需要将摄像头的数据线输出的8位灰度值进行硬件比较后的出结果(黑色点或者白色点),并且将黑点信号引到写缓存端,控制缓存的写入。由于是数字式摄像头所以我们使用8位数字比较器可以较容易解决该问题。3) 摄像头信号坐标计算部分通过处理后的同步信号作为时钟和控制信号,利用数字累加器进行计数及可得到此时对应信号的横纵坐标值。4) 摄像头数据坐标存储部分同步信号、阈值比较信号作为控制信号,控制坐标计算结果写入缓存。因为一般存储器需要地址线的操作,为了简
8、化电路,故选择自身能够进行地址管理的FIFO存储器。5) 与摄像头、单片机接口和人机交互部分根据摄像头的输出信号的定义,和单片机资源的分配定义进行接口设计,人机交互部分方便及时观察摄像头信号处理电路的工作情况,并对其特性进行简单的调整。加入必要的LED(显示)和拨码开关(调整分频比和阈值)。3.3 摄像头信号处理部分系统结构图4 各部分电路原理图与功能详解4.1 像素、行、帧同步信号分频电路1) 像素同步信号PCLK1) 频率:7MHz2) 像素同步信号与处理(分频)说明PCLK:Pixel clock output. Defaulted to be a continuous clock. C
9、an be programmed via the internal register to be on during the valid pixel window only. Video data at output bus (D0-D7) is updated with the rising edge of PCLK and is guaranteed to be valid at the falling edge of PCLK. 像素同步信号一直存在,摄像头数据总线上的数据是在像素同步信号的上升沿更新,下降沿锁存,如果是普通的二分频则会造成锁存信号的下降沿和下一个周期的上升沿靠的太近,这
10、样可能会造成读出的摄像头输出数据混乱,由于像素同步信号的特殊性,所以对其不能是简单的二分频,而是要在二分频的同时保持其上升沿的下降沿的位置不变,也就是说处理后的信号在正频宽上保持与原始一个周期的正频宽相同。3) 原始信号与需要得到信号的仿真波形4) 电路原理图5) 电路测试波形原始像素同步信号(7MHz) 处理后的像素同步信号(3.5MHz)6) 主要使用的元件:74HC125: 四缓冲器/驱动器(三态输出)74HC74: 双上升沿D触发器74HC04:六反相器74HC11:三3输入正与门2) 行同步信号HREF1) 频率:15.6KHz2) 行同步信号与处理(分频)说明HREF:Horizo
11、ntal timing reference output. Asserted high during every valid line for the duration of the valid window width. The window sizing function affects the number of valid lines in a frame as well as the number of valid pixels in a line. HREF and status(1), are identical valid pixel timing information. 行
12、同步信号为高时为有效,每一行末尾行同步信号置低,就是行消隐区,行同步信号在每一帧的末尾行同步信号也为低(时间较长,后面附图说明),因为每行的分辨率对图像质量和处理的影响较大,而每列的分辨率对图像质量和处理的影响不大,故在后面的处理中可能会进一步降低列的分辨率,为了留出这个可调的功能,故对行同步信号不是进行单纯的二分频,而是进行可调分频比的分频,因为行数最多才288,行数虽然不特别重要但是至少也得有30行以上,故分频比在16以下,用74HC161加上必要的逻辑电路和拨码开关即可达到要求。3) 原始信号与需要得到信号的仿真波形(以二分频为例)4) 电路原理图5) 电路测试波形原始行同步信号(15.
13、6KHz) 处理后的行同步信号(7.8KHz) 每帧结束后的行同步信号消隐区6) 主要使用的元件74HC125: 四缓冲器/驱动器(三态输出)74HC74: 双上升沿D触发器74HC04:六反相器74HC11:三3输入正与门74HC20:双4输入正与非门74HC161:4位计算器拨码开关:4位0805电阻:10K3) 帧同步信号VSYNC1) 频率:50Hz2) 帧同步信号与处理(分频)说明VSYNC: Vertical timing reference output. It is high once per frame for the duration of the vertical syn
14、c period. VSYNC and status (2) are identical vertical sync timing information. 帧同步信号为低有效,在一帧结束的消隐区时置高。由于我们采用的是一帧时间预处理和存储,一帧时间读取和精细处理,所以得对帧同步信号进行二分频。由学习和经验我们知道用D触发器和一些必要的逻辑电路可以实现信号二分频,但是由于帧同步信号的频率较低(最快50Hz,与像素同步信号7MHz和行同步信号15.6KHz相比较低),而帧同步信号引出时又和像素同步信号挨得很近,在排线较长(2m左右)时,帧同步信号会受到像素同步信号和行同步信号的干扰,使单纯用D触
15、发器分频的信号非常的混乱,所以在进行二分频之前需要对受干扰的帧同步信号进行整形。整形方案我们选择用反相器构建阈值可调的施密特反相器,滤除杂波。3) 原始信号与需要得到信号的仿真波形4) 电路原理图帧同步信号整形电路原理图帧同步信号二分频电路原理图5) 电路测试波形整形后的帧同步信号(50Hz) 二分频后的帧同步信号(25Hz)6) 主要使用的元件74HC74: 双上升沿D触发器74HC04:六反相器74HC11:三3输入正与门 电阻:10K进口精密可调电阻:5.1 K4.2 摄像头数据阈值比较部分1) 摄像头数据阈值比较原理说明 因为摄像头输出为8位数字信号,故选择数字比较器。因为我们只关心某
16、像素是否是设置中认为的黑点,而并不关心其灰度值(黑的程度),所以我们只需要数字比较器的逻辑比较结果(某像素是黑点或者某像素不是黑点),像素灰度值则不再引入电路中。对于阈值设置,为了方便前期的软件设置和后期及比赛现场的硬件设置,所以设计了两套阈值设置方案,由于里面需要共用数字比较器的另一排数据线,为了使两种信号不相互干扰,必须在电路中加入必要的缓冲器和锁存器。具体方案是,在软件设置阈值方式中加入锁存器(用软件控制使能端,以控制其是否将数据放在总线上),这样可以在设置阈值后将设置阈值所用的I/O口留给其他设备使用且不干扰硬件设置阈值;在硬件设置阈值方式中加入缓冲器(用硬件控制使能端,以控制其是否将
17、数据放在总线上),这样可以避免对软件设置阈值产生干扰和去除逻辑混乱问题。2) 电路原理图 摄像头数据阈值比较部分软件设置阈值部分硬件设置阈值部分3) 主要使用的元件74LS682:8位数字比较器74HC573:八数据缓冲、锁存器(端口很整齐比较好用)74HC245:八总线接收发送器(三态同相输出)74HC04:六反相器拨码开关:1位和8位电阻:5.1K4.3 有效点存储写信号(FIFO的WRITE信号)获得部分1) 写信号的获得原理 写FIFO时,不仅要求是阈值判断出来的黑色点,而且要在正确的像素,正确的行和正确的帧的情况下才能写入,并且考虑到我们使用的器件IDT 7204 SOP(4Kbyt
18、e FIFO)的写入端是低有效,故可以得到其电路原理上使用与非门。又考虑FIFO初始化是需要使用写入端,故FIFO写入端还得和单片机相连。由于FIFO写入端被二次使用,故得引进缓冲器保证两种信号不冲突。2) 信号仿真波形由于里面信号较多,故只截取了关键的像素同步信号和比较结果信号3) 电路原理图4) 电路测试波形(光线很暗)74LS682比较结果 FIFO(IDT 7204) 的写信号(摄像头数据)5) 主要使用的元件74HC20: 双4输入正与非门74HC125: 四缓冲器/驱动器(三态输出)74HC04:六反相器4.4 X和Y坐标计数与存储部分1) X坐标计数部分1) X坐标计数原理 因为
19、我们需要存储有效像素点的X坐标,故需要利用摄像头模块输出的各种同步信号经过计数等处理后得到X坐标,再通过FIFO写信号的控制来决定有效点的写入和无效点的放弃,所以X坐标计数器和摄像头数据是否是有效无关。由于摄像头是逐行扫描,故每一行X的坐标都是变化的,且每一行X坐标计数器都得清零一次。由于计数器74HC4040的清零端是高有效,但是经过处理的行同步信号是有效行为高,无效行为低,故需要将处理后的行同步信号反向后作为X坐标计数器(74HC4040)的清零信号。2) 电路原理图3) 主要使用的元件74HC4040: 12位异步二进制计数器 74HC04:六反相器2) X坐标存储部分1) X坐标存储原
20、理 因为存储的是有效像素点的X坐标,所以需要将计数器74HC4040的输出引到FIFO IDT 7204的数据写入端,通过FIFO写信号的控制来决定有效点的写入和无效点的放弃。而且每一有效帧后FIFO都得刷新清零,本来可以使用引入帧同步信号来清零的方式的,但是由于是第一次使用,我们选择了不仅清零,而且重新初始化一次FIFO的方式,故FIFO的清零端直接接到MCU的I/O口上。由于每帧中的每个像素的X和Y坐标是一一对应的,所以在控制FIFO的读取时,我们为了节约MCU的I/O,对X坐标存储器和Y坐标存储器都使用相同的清零信号和读信号。2) 电路原理图3) 主要使用的元件IDT 7204:4K*9
21、bit FIFO3) Y坐标计数部分1) Y坐标计数原理 因为我们需要存储有效像素点的Y坐标,故需要利用摄像头模块输出的各种同步信号经过计数等处理后得到Y坐标在通过FIFO写信号的控制来决定有效点的写入和无效点的放弃,所以Y坐标计数器和摄像头数据是否是有效无关。由于摄像头是逐行扫描,故每一行Y的坐标都是固定不变的,且每一帧Y坐标计数器才清零一次。由于计数器74HC4040的清零端是高有效,但是帧同步信号是经过的二分频处理,故可以将帧同步信号直接作为Y坐标计数器(74HC4040)的清零信号。2) 电路原理图3) 主要使用的元件74HC4040: 12位异步二进制计数器 4) Y坐标存储部分1)
22、 Y坐标存储原理 因为存储的是有效像素点的Y坐标,所以需要将计数器74HC4040的输出引到FIFO IDT 7204的数据写入端,通过FIFO写信号的控制来决定有效点的写入和无效点的放弃。而且每一有效帧后FIFO都得刷新清零,本来可以使用引入帧同步信号来清零的方式的,但是由于是第一次使用,我们选择了不仅清零,而且重新初始化一次FIFO的方式,故FIFO的清零端直接接到MCU的I/O口上。由于每帧中的每个像素的X和Y坐标是一一对应的,所以在控制FIFO的读取时,我们为了节约MCU的I/O,对X坐标存储器和Y坐标存储器都使用相同的清零信号和读信号。2) 电路原理图3) 主要使用的元件IDT 72
23、04:4K*9bit FIFO4.5 与其他电路部分接口1) 与摄像头模块d-m4088接口1) 接口原理 因为摄像头的数据线、控制线等一共有20根信号线,但是摄像头不可能直接焊在摄像头信号处理板上面,故需要用排线将信号进行传输。由于摄像头输出信号中有很多高频信号(最高达到7MHz),排线间相邻很近加上传输距离较长,所以信号间很容易产生干扰。若不对排线的传输进行改良,则不仅收到的信号混乱而且摄像头的初始化都很可能不成功(成功率小于30%)。 由于地线可以吸收信号线的干扰,并且对信号可以起到屏蔽保护的作用。故我们使用双排线代替单排线,利用双排线设计上的交叉方式,可以很容易达到每根信号都由地线包裹
24、且信号线的排布任然是整齐的。 虽然进行了信号屏蔽,但是摄像头输出的信号毕竟很微弱,排线稍微长一点,摄像头输出信号就不能直接驱动后米的负载了,所以引入缓冲器驱动摄像头的输出数据(在摄像头模块和摄像头信号处理板的近端都加缓冲器,摄像头近端不加缓冲器效果也不错,是我们的中选方案)。但是摄像头的数据线在摄像头初始化时需要使用,故缓冲器得是可控双向的,方向控制线直接引到MCU的I/O口上。而且摄像头初始化时需要使用摄像头的数据线,所以摄像头的数据线需要直接接在MCU的I/O口上。缓冲器我们选择八总线接收发送器(三态同相输出):74HC245。 由于摄像头模块d-m4088本来是没有地线隔离的信号线接口,
25、故在传输前转换成有隔离的排线后,在摄像头的近端还得将排线转换成与摄像头模块对应的方式。所以还得在靠近摄像头模块的地方加一块小的转换板。2) 电路原理图 摄像头信号处理板上摄像头数据输入和缓冲摄像头模块近端摄像头数据输入和缓冲(无缓冲方式)无缓冲方式在使用时效果良好,故不再介绍有缓冲方式摄像头初始化时,数据线直接接在MCU的I/O口上,由于MCU的I/O口数量有限,所以需要复用,通过缓冲器控制。其使能端可以和摄像头模块近端的方向控制线复用,初始化时阈值设置口无用,故和其共用M口3) 各个信号线功能说明:VDATA_0-VDATA_7:Bidirection Data BusVCC:Power S
26、upply,DC 5V+/-0.5VGND:Power Supply GroundOV_ADD0- OV_ADD3:Address inputs for int registersOV_OEB:Out put enable for 8 bit dataOV_WEB:Write enable for int registersOV_CSB:Chip enable for deviceHREF:Horizontal timing ref outputPCLK:Pixel clock outputVSYNC:Vertical timing ref output4) 主要使用的元件74HC245:八总
27、线接收发送器(三态同相输出) 74HC04:六反相器LED:红色电阻:3.3K双排线座子:20pin2) 与MCU板接口1) 接口原理因为摄像头信号处理部分比较复杂,但是车能够放PCB板的面积有限,所以需要将摄像头处理板和MCU控制板分成两块叠加安放在车身里面。为了减少板与板的导线连接,提高系统的可靠性,故在绘制PCB时需要两块板子协调进行,且使用插针直接对接上去,这需要位置严格对准。2) 电路原理图(端口分配详见MCU的端口分配)各个信号线所分配的MCU I/O口X07:PORTB07Y07:PORTA07CMP07:POTRM07OV_ADD03:PORTH03OV_OEB:PORTH4O
28、V_WEB:PORTH5OV_CSB:PORTH6LATCH_CMP:PORTH7FIFO_EF:PJ1FIFO_FF:PJ7FIFO_RS:PK0FIFO_W:PK1FIFO_R:PK2W_CHOOSE:PK4VSYNC2:PT0OV_DEN:PK34.6 电源和指示部分1) 原理与原因 在实际使用和调试时经常都会对一些关键信号进行测量,由于摄像头信号处理板被MCU板盖住,故如果出现异常需要对一些关键信号进行检测时我们很难测量到。所以将一些关键信号引出,以来方便测量,还有可以通过关键信号来观察系统工作是否正常。2) 电路原理图元件选型、电路绘制、焊接中需要注意的问题和一些容易忽视的细节4.7
29、 原件选型与购买1) 器件的驱动能力问题,特别是驱动发光二极管时,一般0805的发光二极管用1mA电流就可以驱动,也就是说电流电阻用3.3K比较合适;2) 器件的体积问题,器件固然是越小越好,但是太小的封装(比如:SSOIC)会造成手工焊接的困难,一般贴片IC选择SOP,电阻电容等选择0805;3) 器件的引脚排布问题,虽然有时候两种的器件的性能一样,只是引脚排布不一样,但是它会影响到PCB的布局和走线,一般来说器件引脚排布最好选择最方便PCB走线的来选择;4) 器件的购买问题,在摄像头信号处理板中用到的器件除IDT 7204与74LS682以外均可以在广埠屯二楼、三楼买到。IDT 7204
30、与 74LS682可以在网上购买或者找广埠屯三楼的祥丰源电子代买,价格大概是IDT 7204 50元/片,74LS682 5元/片;4.8 电路板绘制1) 原理图和原理图库问题,器件原理图只是示意作用,但是原理图的引脚是和PCB上面封装的引脚是对应的,若不注意会造成生成PCB错误和PCB上面的引脚分配与理想中的不一致;而且原理图库最好自己绘制,不容易出问题;2) 元件的封装和PCB封装库的问题,PCB上面需要用的元件最好在原理图设计好后就购买,元件买齐了在画PCB;无论系统的库里面有没有我们需要的元件的封装,都需要自己画PCB封装库,这样才有针对性和正确性,不然很容易出现封装对应不上的问题;3
31、) 电源的问题,电源线最好粗而且电源线布局呈树状,就像人体的血管一样走线4) PCB布局的问题,首先PCB布局要按照信号流或者原理拓扑结构来安排,布局完成后可以清晰分辨出电源部分、人机交互部分等;尽量让联系紧密的器件在一起;布局要人性化和统一化,PCB的布局最好和外界连接、使用协调起来,做到线最短,最易于使用;还要考虑安装的问题,留安装孔时一定要和机械部分协调好;5) PCB布线问题,布线要整齐,能短尽量短,先走数据线和一排一排整齐端口的线,然后走控制线,最后走电源线和地线(可以用敷铜);6) PCB线宽问题,一般信号线都是10mil,单个器件的电源线一般为20mil,总电源线根据需要加粗一般40mil或者80mil;必要时需要增加过孔,一般信号线过孔为外径:25mil,内径:15mil;电源线的过孔需要粗一些,一般外径和线宽一样,内
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1