本文所介绍的高频头以DVB-c tuner(数字有线电视)为例
一、硬件解析(对硬件原理不熟悉,只能说个大概)
高频头(tuner),也称之为调频器,主要有三个功能:
1)选择频道即选台,在硬件上应该就是个过滤器吧,选择出指定频率的信号
2)放大功能,就是个信号放大器了
3)变频功能,将选定频率的信号转换为中频信号,以供后续demod使用 这里面有个AGC器件(原理上就是稳定信号的所用,在人体上相似的功能也存在,如看到强光、听到的声音太大时)
附NXP nxp Semiconductors公司的TDA18250的block图:

说到tuner,就不得不介绍demod,两个器件协同工作,构成信号处理的frontend
1)demod随处可见,根据不同的调制方式FM、AM、QAM等,也存在对应类型的demod
2)日常所见的,像收音机、电视机、机顶盒、上网的解调器等都含有相关的demod
附LGS-8G52的demod图(没找到合适的图,用DVB-T的demod示意一下,原理是相同的):

从数据流的角度看这两个器件的输入输出:cable RF(有线电视线)--RF--> tuner --IF(中频)--> demod --TS(mpeg ts流)
另外需注意的一点:tuner设置好中频后,demod的中频参数应与之保持一致

二、软件解析(从如何program的角度解析)
1)tuner和demod都是I2C器件,器件厂家会提供相关驱动,但都要求实现I2C读写接口来完成对这两个器件的控制和状态读取(主要的目的就是可以读写这两个器件的寄存器)
2)从软件上层应用控制的角度来观察,这个两个器件的输入和输出
                 输入                                                                                    输出
tuner        freq(频率)                                                                       lockstate(锁频状态)

demod   symbol rate(符号率)                                                       误码率
                modulation mode(调制模式)                                        信号强度
                                                                                                        信噪比等

3)在软件实现上,两个器件一般会一起实现相应的frontend接口供上层应用,介绍下主要的两个接口 初始化和锁频(本质上就是上文提到的i2c读写寄存器):
init()
{
registe_i2c();//注册相关i2c读写接口

//初始化,设置ts流输出模式(串行或者并行)等
if()//tuner的i2c主控在demod上
{
demod_init();//初始化demod,并将tuner I2C地址写入demod,进行tuner的相关初始化
}
else
{
tuner_init();
demod_init();
}
}
lock_frequency(freq,symbolrate,mode)
{
  //设置freq
if()//tuner的i2c主控在demod上
{
demod_setfreq(freq);//通过demod,设置tuner的freq
}
else
{
tuner_setfreq();
}

//设置demod的相关参数
demod_setpara(symbolrate,mode....);
demod_restart();//涉及到部分模式选择、重启等
}

数字有线机顶盒锁频流程相关推荐

  1. android锁屏流程_Android开机锁屏流程分析

    Android开机锁屏流程: 首先:手机开机时,在SystemServer类的init2()方法中会启动线程类ServerThread的run方法如下: WindowMan Android开机锁屏流程 ...

  2. 中兴微ZXIC方案MF782型4G随身WIFI开启ADB,开启锁频等功能

    最近接触到一些国产无线上网方案的随身WIFI,虽然可玩性没有高通410和高通210高(国产方案都是基于Liunx,高通基本基于安卓系统),但是国产方案的稳定性不错(基于Linux的类路由系统),发热比 ...

  3. 自定义悬浮球,提供一些快捷操作。比如一键静音,一键锁频,一键截屏,一键回桌面,手电筒等

    FloatingBall 项目地址:killer8000/FloatingBall  简介:自定义悬浮球,提供一些快捷操作.比如一键静音,一键锁频,一键截屏,一键回桌面,手电筒等 更多:作者   提 ...

  4. Android8.1 SystemUI 之图案锁验证流程

    2019独角兽企业重金招聘Python工程师标准>>> 在Keyguard之滑动解锁流程一文中,我们已经分析过,不同的安全锁类型是在KeyguardSecurityContainer ...

  5. 笔记本_cpu_突然性能下降_cpu锁频_cpu降频_重装无用_解锁办法

    背景: 使用4年的联想拯救者笔记本电脑,突然某一天开机后很卡,鲁大师性能测试发现CPU跑分才1万,正常7万分,跑分期间,任务管理器中cpu使用率始终上不来,各种尝试都不行,重装也不行. 思路: 1.排 ...

  6. 距离感应器实现锁频教程

    首先说一下android平台下的11种感应器:            1. ACCELEROMETER 加速,描述加速度的.            2.GRAVITY 重力,这个在大家都知道.     ...

  7. ThinkpadCPU锁频0.4G问题

    1.问题描述 Thinkpad型号:E15 CPU:i5-10210U@1.6GHz 系统:Win10家庭版 ThinkpadCPU锁频0.4G,具体是过程是今天我需要去楼下打印东西,要带着笔记本电脑 ...

  8. 笔记本电脑使用电池时CPU锁频0.78GHz

    问题 解决方案 下载并打开ThrottleStop,将BD PROCHOT选项的勾去掉,并保存即可. 解决笔记本电脑使用电池时CPU锁频0.79GHz的问题

  9. Android 9.0 SystemUI 锁屏流程分析

    1.锁屏界面显示的流程 2.按键灭屏 -> 按键亮屏 对于Key事件,InputDispatcher在分发之前会先将事件上发到PhoneWindowManager中,可以进行拦截,故从Phone ...

最新文章

  1. 开源大咖齐聚2020启智开发者大会,共探深度学习技术未来趋势
  2. iOS将文件在自己App中打开
  3. php 变量的8类类型
  4. Gradle自动化之自动打包并上传到fir测试网站
  5. 白话详细解读(一)-----GoogLeNet(Inception V1-Inception V3)
  6. Oracle过滤与排序
  7. 反思耗时任务异步处理
  8. liferay 如何添加css或者js
  9. 排序算法杂谈(三) —— 归并排序的非递归实现
  10. 304. 二维区域和检索 - 矩阵不可变
  11. echarts3力引导布局,固定某节点
  12. veeam的备份策略(每周6增量备份,每周日合成全量备份)
  13. 《山水情》------中国水墨山水动画的颠峰与极至
  14. 【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口
  15. 希捷 sshd 微型计算机,希捷1TB SSHD拆解/核心技术分析_硬盘_内存硬盘-中关村在线...
  16. 简单工厂、工厂方法、抽象工厂
  17. Fragment页面的返回按钮监听
  18. 零基础如何学习java,要学多久?
  19. 软件测试必学内容,你都掌握了吗?
  20. NewstartHA 配置技巧

热门文章

  1. 【电容相移电路】 multisim 14.0仿真 电容相移电路原理
  2. Android自定义控件开发入门与实战(6)路径动画,android脚本开发工具
  3. java http请求超时问题
  4. 等一个不爱你的人,就像在机场等一艘船。
  5. 千塔之城-金色布拉格
  6. 申请大学用的是IB预估分?
  7. 从平凡到优秀的思维与习惯养成
  8. Uniapp扫二维码或条码输入组件兼容浏览器H5完成
  9. win10安装Ubuntu18.04双系统UEFI模式启动及其后续工作
  10. 在typescript中获取dom属性的方法