ATV软件基础知识 V10.docx

上传人:b****5 文档编号:6952497 上传时间:2023-01-13 格式:DOCX 页数:15 大小:209.92KB
下载 相关 举报
ATV软件基础知识 V10.docx_第1页
第1页 / 共15页
ATV软件基础知识 V10.docx_第2页
第2页 / 共15页
ATV软件基础知识 V10.docx_第3页
第3页 / 共15页
ATV软件基础知识 V10.docx_第4页
第4页 / 共15页
ATV软件基础知识 V10.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

ATV软件基础知识 V10.docx

《ATV软件基础知识 V10.docx》由会员分享,可在线阅读,更多相关《ATV软件基础知识 V10.docx(15页珍藏版)》请在冰豆网上搜索。

ATV软件基础知识 V10.docx

ATV软件基础知识V10

广州朗朗电子技术有限公司

ATV软件基础知识

V1.0

ASUS

[选取日期]

一,软件运行环境

ATV板卡一般分两大类,按所配的屏的尺寸来区分,为小屏方案和大屏方案.这两者的区别有功能和性能上的区别.功能上的区别有:

端口,多媒体,画中画等,性能上的区别有:

decoder的YC分离,Scaler的deinterlace,功放的输出功率,音质,画质,OSD的美观程度等.

小屏方案的CPU一般是8051系列的功能增强型.编译环境为Keil,语言为C51.请注意与标准C语言的差别.注意8051本身的编程限制(分Bank,不要使用函数指针,堆栈很小).要熟悉Keil的lin文件.

大屏方案的CPU有MIPS,ARM等,编译环境一般为GCC,需在Linux下或者Cygwin中运行,使用标准C语言,但也要注意嵌入式应用场合与PC机上C编程的差别(volatile).要熟悉makefile和ld文件等.

一般常用的软件工具有beyondcompare,sourceinsight等.要熟悉其使用方法.

ATV软件的主要工作是:

初始化硬件,通过硬件监测输入信号,判断信号格式,根据信号格式设置主芯片,维护人机界面.

二,硬件运行环境

目前除个别方案外,所有CPU都被内置在主芯片中,即所谓的SOC.一般外挂Flash,用以存储编译后代码,小屏方案CPU会内置约1KRam,大屏方案一般使用DDR做内存.数据存储一般有EEPROM,部分方案会使用flash.

CPU一般在Flash中运行代码,某些大屏方案会将代码从Flash中解压后搬移到DDR中运行.

CPU在运行时,会通过GPIO来控制外接设备,包括音视频开关等.通过读写主芯片寄存器来控制图像的显示,调整显示效果等.主芯片的寄存器有些独立于CPU的地址空间,要通过I2C或其他间接方式读写,有些直接编址在CPU的地址空间内.

CPU还要控制处理遥控器和按键的输入.

三,软件调试方法

出于成本考虑,目前没有完善的调试手段,一般只能通过printf语句来打印运行时信息.另外还可以通过串口来读写主芯片寄存器.

面对问题,先仔细判断是硬件还是软件问题.可以通过调换硬件或软件的办法来判断.

确认是软件问题后,反复操作,找到问题出现的规律.判断相关的代码位置.

如果是硬件问题,在硬件修正代价较大的情况下,要从软件来想办法进行弥补和掩盖.

在相关代码中,添加必要的打印语句,打印输入条件,程序运行结果等,根据打印信息,判断程序运行到什么地方与设计流程意图不同,一般能很快找到问题点.

如果问题是软件流程问题,可以自行修正.

如果流程正确,涉及到要修改寄存器的值才能解决问题,则一般不建议自行修改.此时需要跟原厂取得联系,仔细描述问题,并咨询修改寄存器是否恰当和安全,在得到肯定答复后,还要反复验证才能这样修改.

对比寄存器是一个重要的调试方法.即把正常状态下的所有寄存器读出来并保存,在非正常状态下,再把所有寄存器读出来,并使用工具比较两者,把与正常状态不相同的寄存器用正确值写入,一般很容易找到哪些寄存器被写了不正确的值导致该问题.

原厂会提供一些调试效果,或者调屏的软件工具,一定要熟练使用.

四,主要工作内容

维护:

按照客户要求,修改遥控器,按键,配屏,Logo,调试图像效果.增加新的功能,修改OSD.修正程序Bug.

开发:

通读代码,全面了解方案,为方便维护,对代码进行必要的修整,按照规范要求,修正提高方案性能指标.掌握配屏,调效果等手段,并撰写开发文档,培训FAE.

五,素质要求

责任心:

必须有高度的责任心,一定保证代码的安全,发现任何疑问,一定不放过.

严谨:

对工作一定要严谨,无论软件,硬件的问题,一旦发现,一定要解决到完美,不允许出现随便,懒散的山寨作风.

交流:

积极主动的交流.有问题时一定要交流,可以借鉴他人的工作成果.对自己的解决方法不放心,一定要主动找合适的同事求证.自己的工作收获,要主动积极向其他同事披露,培养良好的交流氛围,共同提高.

热情:

对客户一定要保持热情,对工作保持热情,

专业素养:

语言工具,专业知识,包括图像效果的鉴别,调试,板卡硬件知识,常用仪器的使用.

遵守公司制度:

这是基本要求.

六,ATV软件主要功能模块及软件实现

1)主流程,

采用8051系列CPU的一般不采用操作系统,主流程为前后台机制,大循环中依次调用各功能模块.主要的功能模块有:

OSD模块,Debug模块,信号检测模块等.模块间通过全局变量或者消息进行沟通.

采用ARM,MIPS系列CPU的一般会有操作系统,比较多的是uCOS,会建立多个任务,一般OSD为一个任务,信号处理为一个任务,任务间通过发送消息来进行交流同步.

OSD模块或者任务的主要工作是,实现人机界面,接收用户输入,控制TV的状态,并实时显示TV的状态信息.

Debug模块的主要工作是:

接收PC机发送的调试命令,并执行.

信号检测模块的主要工作是:

检测信号,识别信号格式,设置Scaler芯片并输出正常图像.

ATV整机框图:

Scaler框图:

2)低功耗状态,开机时间,看门狗

欧洲有要求,整机在待机时功耗小于1W.所有方案一般都在关机后进入低功耗状态.在此状态下,有的方案只有CPU在较低时钟频率下运行.有的方案则CPU停止运行,只剩下硬件在检测按键板上Power键,和IR的Power键,一旦有Power键被按下,CPU会被唤醒.

开机时间一般要求<5秒.

看门狗,有些方案有看门狗,工作原理可以上网去搜.长时间的操作中要注意喂狗.

3)TV切换频道过程及要求(<2秒,能连续切换)

软件中TV切换频道,一般流程如下:

scaler进入FreeRun,显示黑屏(有的方案会将当前图像静止),然后从EEPROM中读取下一个频道的参数,包括频率,彩色制式,伴音制式等.写高频头,然后可能会设置decoder的彩色制式,还可能会设置伴音制式.有些方案此后会进入信号检测流程,如果检测到有信号,即进行模式设置,显示出图像.但这样导致切换频道比较慢.有的方案在设置完高频头后会立即进入图像显示状态.

一般客户会要求,按住频道+或-键不放时,应该能连续切换频道.为此,如果切换频道比较慢的方案,需要仔细考虑.

切换频道从进入黑屏到最后显示出图像的整个时间不应超过2秒.

注意切换频道时的爆音,因为短时间内音量有很大变化,导致某些方案出现轻微的爆音,在设置音量时不要一步到位的设到目的值,而是要逐步增大.

4)高频头频率设置

参考高频头的规格书.要明了写入的寄存器值与真实频率的换算关系.高频头的工作原理与超外差收音机是一样的.

注意VL,VH,UHF三个频段分界点,这里容易漏台.

读写高频头采用了I2C协议.

5)EEPROM数据存取

很多方案使用EEPROM存取用户数据,比如亮度,对比度,频道参数等.EEPROM的存取方法可以参考EEPROM芯片的规格书.

这里要注意的问题是要分配好EEPROM芯片有限的地址空间.

BYTErmReadByte(WORDwIndex);读函数,地址wIndex为16位.

voidrmWriteByte(WORDwIndex,BYTEucVal);写函数.

一般还会有Burst Read,BurstWrite模式的读写函数.

读写EEPROM也采用I2C协议.

6)自动搜台,搜索时间,

自动搜台是ATV很重要的一个功能.要求不漏台,不能有太多假台.高频头所能接收的信号频率范围从40M~860MHz,一般分3个频段,VL,VH,UHF,在这三个频段的交界处比较容易出现漏台.

即使在不采用操作系统的方案中,自动搜台也是采用状态机方式实现.这样的话,整个程序还能响应其他事件.

搜台的基本原理是:

改变高频头的接收频率,判断是否有载波存在,如果有,则由decoder判断是否有视频信号,如果有,则认为该频率是一个有效的频道.

ATV的搜台时间在2~5分钟内是正常的,在这个范围内越快越好.

假台是指把某些干扰信号,不稳定信号误识别为有效频道.

漏台是指未能识别出有效频道,这种情况是不允许的.

某些不带帧存储器的方案搜台时,信号在有无之间变化,可能导致花屏,所以这些方案搜台时进入蓝屏状态.

7)设置彩色制式

TV与其他端口不同,有时候需要设置彩色制式,其他端口的信号全部是自动判断其制式的,可能是TV接收信号最差,自动判断不可靠,在某些时候需要用户自己来手动设置.

decoder部分有函数设置其彩色制式,比如msVdVideoSystemCtl();

8)设置声音制式

手动设置声音制式的理由同上,不正确设置声音制式,就不能正常解调出伴音,我们会听到白噪声或者无声,此时更不能正常解码丽音.同时,仔细观察,某些方案在图像上出现有规则的花纹状.

判断声音制式由SIF处理模块完成.

9)自动判断彩色,声音制式

用户选择彩色制式为自动时,需要由Decoer自动判断彩色制式decoder可以设定彩色制式,其中会有一个自动模式.

用户选择声音制式为自动时,需要软件判断声音制式,这个由SIF处理模块完成.MV6的SIF模块有自动侦测声音制式的功能,读寄存器可以得到当前声音制式.

TDA9885芯片没有自动侦测功能,但可以提供信息告知当前是否有有效的伴音载波.因DK,BG,I等声音制式的伴音载波频率都不相同,就可以通过设不同的伴音制式,然后判断设为哪个时被发现有效而间接侦测到伴音制式.

10)手动搜台

除自动搜台外,一般还有手动搜台.手动搜台时,从当前频率开始,用户按右键,则往高频率处搜台,按左键,则往低频率处搜台.一旦搜到台后,就停止搜索,用户可能会选择存储.注意高频头往低频率处搜台时,因高频头PLL的锁定更慢,要注意可能会漏台.

这部分的工作原理与自动搜台是一样的.

11)AFC,AFT

自动频率控制.这个功能在以前的老电视机上是必备的功能,现在则属于可有可无的功能.

其工作原理是,在正常收看节目时,监视频率是否有偏移.中频放大和解调模块(比如早期的TDA9885芯片,我们R60方案上还在使用.MV6方案则把这个模块集成到主芯片中了)能侦测到当前接收频率与电视台信号频率的差别,通过这个信息,再去设置高频头的接收频率,直到与电视台信号频率相同.

AFC功能一般要求在正负2M左右范围内做调整.

AFC功能打开时,下面的微调功能要自动关闭.

12)微调

用户可以手动调节高频头的接收频率,范围较小,一般在±1MHz,或者更小.如果打开了AFC功能,则微调功能会被关闭.

13)跳台

如果自动搜台搜到了假台,则跳台功能很重要了.用户可以手动设定某个频道的Skip标志为ON,这样的话,用户使用CH+,或者CH-键不停切换频道时,这个频道会被跳过.软件的实现是在频道数据结构中增加一个标志位Skip,自动搜台后,有效频道的这个标志被清,无效频道的标志被置位.处理CH+和CH-时,程序读下一个频道数据,判断如果该标志为置位,则继续读下一个频道,从而实现了跳台功能.

OSD中有一项,供用户改变每个频道的Skip标志.

14)回看

遥控器上有一个"回看"键,用户按下时,转到上一次观看的频道.所以在用户改变频道时,需要记录下改变前的频道号.

软件中,当此键被按下时,ucCurChannelNO<->ucPreChannelNO,两个变量的值互换,然后执行切换频道动作.

15)-/--键

这个键的功能是选择输入台号时的位数.每次被按下,即从1位->2位->3位->1位循环,同时在屏幕显示频道号的地方显示-,--,或者---.如果用户选择3位输入方式,则用户输入了3个数后,才取用户的输入作为当前频道号,并切换到该频道.

有些方案没有做这个键,用户输入时,如果停顿一定时间未按键,则取用户已经输入的数字作为频道号.这个时间要取得合适,一般1秒到1.5秒.

16)丽音,MTS

欧洲和美国的ATV都有增强型音频,欧洲是NICAM,美国是BTSC.NICAM是在正常的音视频信号外,增加一个数字调制的高质量音频信号.美国则是增加一个FM调制信号.要收听丽音或者BTSC,必须有相应的解码模块.其他地区只有普通的FM伴音.

NICAM可能携带单声道音频,或者立体声音频,或者两路不同语言的对白(DUAL).

丽音优先:

因丽音是数字信号,音质更好,一般情况下,如果侦测到有丽音信号,要优先播放丽音信号,如果是Dual信号,则要播放用户事先选择的那一路.

程序在主循环中要不停监测丽音信号是否发生变化.

参考<<54200说明书>>

17)图文

欧洲的ATV带图文功能,美国类似的功能叫CC(CloseCaption).在正常电视信号中,携带文字信息,接收机解码,并叠加在视频信号中显示出来.

早期有专用解码芯片,并输出视频信号给Decoder,由Decoder叠加后同时显示.

现在都使用主芯片的OSD模块来做图文显示,因此图文与OSD显示不能同时进行,开图文时,要关闭菜单.

图文功能有自己专用的数个按键.

参考<<54200说明书>>

18)decoder

decoder的功能是处理CVBS,S-Video,SCART端口信号,包括数字化,解码等功能,另外还要判断信号制式,以便后面电路正常工作.

Decoder一般只处理标清信号,在早期Decoder和处理VGA,YPBPR信号的ADC是两块分离的IC.现在的方案,大家共用ADC,但后面的CVBS信号解码是decoder独有的.

19)scaler

Scaler部分的主要功能是把不同分辨率的输入信号通过插值或者去掉一些像素的办法转换成固定分辨率的输出,驱动液晶屏显示图像.

20)设置模式

设置模式的基本流程如下:

GetStdCaptureWindow(ucSrcIdx);

获得当前模式的分辨率等参数,根据重现率,用户选择的scale模式计算capturewindow参数.

GetStdDisplayWindow(ucSrcIdx);

获取输出参数

CalculateAspectRatio(ucSrcIdx,ucScaleMode,pWindow);

根据以上参数,计算Scaler的缩放系数等

SetDisplayWindow(ucSrcIdx,pWindow);

根据结果设置输出参数

SetScalingRatio(ucSrcIdx,g_SrcInfo[ucSrcIdx].bModeInterlaceMode);

设置缩放系数

SetCaptureWindow(ucSrcIdx,pWindow);

设置输入参数

....

后面应该设置画质相关参数,包括亮度,对比度等

21)屏参,SSC,

必须熟悉屏的规格书,清楚了解各指标.在调屏时,必须保证所有模式下图像正常(有时候高分辨率的输入时,容易出现图像异常).尤其带PIP的方案,要仔细测试各种组合条件下,图像是否正常.

为降低板卡辐射,驱动屏的时钟可以工作在频率扩展模式下,在该模式下,PCLK在一个小范围内变化,防止在一个频率上能量过大而产生辐射.扩频功能有一定的副作用,一般量产程序不要开,只有过认证时才打开.

22)画质调整:

LTI,CTI,

色温,

Gamma,

Hue,

各测试图案:

彩条,灰阶,

清晰度标准:

R74因硬件所限,YPBPR端口清晰度很差,高清信号输入时的显示效果也不如人意.

23)声音部分,

音量曲线,早年的收音机,电视机使用电位器来控制音量,该电位器的阻值变化是指数型的.目前使用可变增益放大器来控制音量,为达到音量平稳变化的目的,OSD显示的音量数与写入寄存器的值是一个曲线关系(此曲线近似对数关系?

).此音量曲线有严格规定,软件中的音量值表必须精心调试,最好要用查表的方式获得音量寄存器值,不宜使用计算的方法来获得.

最大功率,这是整机的一个重要指标,在标准输入信号时,所有通道必须能达到客户要求的最大功率.要重点检查测试这个指标.

开关机爆音,开关机时如果有爆音,是不能接受的.需软硬件配合解决.冷上电或直接断电的爆音,必须由硬件解决.软件开关机的爆音必须由软件解决.一般在开关机时,软件做静音,包括减小音量和关闭功放等操作来实现.

用户遥控器静音时AVOut不能静音.但是,在TV切换端口,切换频道时,要保证AVOUT在这些时候静音,避免用户听到异声.

频响,是另外一个重要指标.跟软件关系不大.

另外,注意平衡功能,要求减小平衡值,右声道音量减小,增加平衡值,左声道音量减小.但PC机上Windows里面的调节平衡与此相反,比较奇怪.

24)重现率

除VGA和HDMI的Graphic模式外,其他端口在显示图像时不能显示图像的全部内容,所显示的比率为重现率.标清信号为95%,高清信号96%左右.这个指标很重要.一般是通过SetCaptureWindow(ucSrcIdx,pWindow);来实现,要根据输入信号的参数和重现率,计算出HStart,HSize,VStart,VSize.需对照专用的重现率测试图案对每个端口每个模式进行校正.

HDMI的Graphic模式和VGA端口时,必须100%显示图像内容.

这是经常修改的参数,要针对每个端口的每个模式做成一个表来处理.

25)VGA端口:

ADC参数,Gain,Offset,ClampPos,ClampDuration,Coast

点对点:

如何区分是否点对点?

NOKIA测试工具,用途是什么?

自动校正,

自动唤醒,PC端口时,无信号超过30秒(?

)即自动待机,待机时间一般为1分钟(?

),在这1分钟内,如果有信号,则自动进入正常显示状态,否则自动关机.

EDID:

26)HDMI端口:

EDID:

HDMI的EDID很重要,如果EDID不正确,图像和声音都会有问题.可能表现为始终识别为DVI模式,或者出现白噪声画面.不要自行改动HDMI的EDID,要使用经过验证的EDID.

Key:

实现HDCP必须有key,在初始化时,软件将key(250多个字节)写入芯片.有效的Key是缴费后从HDCP组织获取的.

Hotplug:

HDMI接口上有一个引脚,此引脚很重要,此脚变高后,DVD等HDMI信号源就会与我们芯片的HDMI接收模块通信,读取TV信息等.所以要在TV的HDMI接收模块准备好后,把这个脚拉高.拉高的时机不对会导致某些DVD不能正确输出HDMI信号.

CEC:

HDMI规范中有一种可选的规范是CEC(消费电子控制),可以实现一些音视频设备间的高级控制功能,比如支持视频源和数字电视间的双向通信,实现单键按下同时开机等功能.

色空间:

HDMI支持RGB,YUV等色空间,有些DVD可以选择输出的色空间.软件必须正确处理色空间,在主循环中侦测到色空间发生改变时,要重新设置模式.

模式区分方法:

与VGA和YPBPR端口不同,HDMI是数字信号,可以精确的获得H,VActive等信号,有助于模式判别.HDMI支持Graphic的1920*1080模式,又支持1080P等视频模式,(还有640x480和480P,1280x720和720P)这些模式的区分是值得注意的问题.

软件在HDMI端口判断到输入信号为DVI时,要把音频信号的输入通道改为PCAudio.

27)YPBPR端口:

在工厂模式下,利用原厂指定的测试图案,做自动校正.取5块板,每块板做5到10次,把实验数据取平均值后写入代码.一般情况下,不再需要改动.

SOGlevel:

曾经遇到过某些游戏机的分量输出图像不稳定,通过调节SOGLevel寄存器可以解决.

28)AV端口

AV端口是CVBS信号,要支持图文或者CC.需要注意什么?

29)SVideo端口

30)SCART端口:

SCARTCVBS:

SCART可以有CVBS,CVBS+RGB,SV三种输入方式,一般是CVBS+RGB方式.FastBlank脚为高时,DVD输出CVBS+RGB,为低时,DVD只输出CVBS.FastBlank可以是一个高频率的信号.而实际使用中很多方案把FastBlank信号当作一个直流电平来看待,因显示CVBS和RGB时,图像效果差异较大,软件里都把CVBS和RGB当作两个模式来处理,根据FashBlank脚来决定采用哪套图像效果参数.

SCARTRGB:

要注意SOG,这次在骏德,MV6方案在打开SOG时,图像偏色严重,是ADC的Clamp参数不合适.

FastSwitch:

类似于HDMI的Hotplug脚,在DVD输出4:

3图像时,该脚为9.5~12伏,输出16:

9图像时,该脚为5~8伏.软件在主循环中要侦测这个脚的电平,并相应的设置Scale模式.如果在其他端口时,侦测到该脚变高,要立即切换到SCART端口.而在SCART端口时,该脚变低,要立即切换到TV端口.

SCARTAVOut:

SCART座子中包括了AVout引脚,原则上始终输出TV的音视频信号.

31)背光电压,屏的上电下电时序,TIMode,色深,ABPort,

背光电压ADJ会影响屏的亮度,从而极大的影响画质.一定要把这个参数调到屏的要求值.

上电和下电时序很重要,如果不正确,可能导致某些屏画面闪动,或者干脆无图像(R74比较突出),必须确保按屏的规格书来设置.

TIMode,也叫屏的Map,因LVDS信号驱屏时有两种规范可选,当软件中的设置与屏的要求不同时,屏上图像轮廓正确,但色彩完全紊乱,比较容易判断.

色深:

屏有6bit,8bit,10bit的区分,软件中也必须正确的设置,否则可能图像极暗.

ABPort:

高分辨率的屏因PCLK太高,必须采用多组LVDS来传输.一般两组,分别叫APort,BPort.软件中的设置与屏线不一致时,可以观察到图像在垂直方向出现很多毛刺.

32)按键,遥控器处理及手感要求

按键分IO型和AD型两大类.

按键和遥控器有一个需注意的问题,有些OSD选项要求连续响应键入,比如音量,亮度等进度条,用户按住键不放手,则进度条一直增大或减小,另外一些离散的选择项不要求连续响应键入,比如调节语言时,用户按键一次,只改变一次,用户按住不放手,也不再响应.某些方案没有这样做,所有输入都是连续响应的,给用户的体验不好.

另外,按键和遥控器的手感很重要,既要求用户连续输入时,作出迅速响应,比如连续按键调节音量时,又要求用户短暂按键时,一次只能增1或减1,这样用户可以方便精确的把亮度等调到某个数值.SONY机的手感做得很好.

遥控码有多种规范,常用的有NEC,RC5等.这些常见码一般方案可以硬件来解.如果方案不能硬件解,或者是硬件不支持的码型,则要软件来解.总的方法是,红外接收头产生脉冲,该脉冲进入CPU的外部中断引脚,触发中断,软件在中断处理中判断脉冲宽度,从而识别出数据.

按键处理中要注意防抖.

有些遥控器上有CH+,CH-,和VOL+,VOL-四个键,这四个键,不能同时有上下左右方向键的功能.如果遥控器上没有这四个键,则无菜单时,上下键做CH+,CH-,左右键做VOL+,VOL-.

判断遥控器是否能正常发射红外光,可以使用手机的摄像功能,打开手机的摄像功能后观察遥控器的红外发射二极管是否发光.

33)OSD工作原理,开机logo,语言

Font型OSD:

简单说,就是为了节省资源,OSD整个窗口是由一个个预先画好的字模组成的.字模多半是12*18像素的.显示任何内容,必须先把该内容做成字模下载到FontRam中,然后下载该字模序号到CodeRam中.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1