查看: 1994|回复: 9

[评测分享] [超越者Spartan-6 FPGA开发板] HDMI的显示驱动

[复制链接]
  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2021-5-26 23:16:25 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 jinglixixi 于 2021-5-27 08:13 编辑

    超越者FPGA开发板提供了HDMI接口,通过它来连接显示器可实现相应的显示任务,该接口的结构如图1所示。
    1.png
    图1 接口结构
    通过HDMI接口,我们可以完成3钟显示效果测试。
    1.HDMI显示彩条
    要进行该显示效果测试,需具备的硬件条件是图2和图3所示的连接器件。
    3.png
    实现显示测试的线路连接如图4所示,显示器为联想电脑的液晶显示屏。
    4.png
    图4 测试线路连接
    此外,在显示屏具备DVI接口的情况下使用图5所示的转接器也能达到测试的目的,其线路连接如图6所示。
    5.png
    图5 HDMI转DVI连接器
    6.png
    图6测试线路连接
    在软件方面的操作是:
    1.测试程序进行编译处理,已生成相应的bit文件;
    7.png
    图7 完成编译
    2.在连接好测试线路及调试器的情况下,打开电源开关并将生成的BIT文件下载到开发板,完成下载后即可在HDMI显示器上见到彩条图案,说明该测试成功。
    8.png
    图8 完成下载
    2. HDMI显示方块移动
    除了在显示屏上显示彩色图案,还可进行动态移动效果的测试。
    测试方块移动效果的线路连接,与上一个测试的一样,下载的操作步骤也一样,只是编译和下载的对象发生了改变。
    在完成下载后,图中的黑色方块会不停的移动,且在碰到蓝色边框时会改变移动方向,其效果如图9所示。
    9.png
    图9 测试效果
    3. 读取SD卡显示BMP图片
    其实单单是前面2个测试,只能说FPGA开发板是支持HDMI显示的,实用价值并不高。
    下面这个测试才是较为有用的,它那把SD卡中的图片再现到显示屏上,其显示效果如图10所示。
    10.png
    图10 测试效果
    要实现这样的显示效果,除了前面的基础外,还需要添加以下的操作:
    1.为了保障显示过程的顺利执行,需将存储图片的SD卡重新格式化,以确保数据读取流畅。
    SD卡格式化的参数设置如图11所示,选取的SD卡容量不宜太高。
    11.png
    图11 格式化参数设置

    2.为完成格式化之后,再将示例所提供的图片文件复制到SD卡,当然你也可以按其格式规格放入自己选择的图片。
    12.png
    图12 存入图片
    3. 使用工具软件WinHex查看图片的扇区起始地址,见图13和图14所示。
    13.png
    图13查看物理驱动器

    14.png
    图14 查看起始扇区地址
    由上图可知,两张BMP图片的起始扇区地址分别为18440和23056。
    4. 按起始扇区地址修改程序中的参数定义,见图15所示。

    15.png
    图15 修改参数定义
    5.将TF卡插入开发板的SD卡插槽, 在完成程序的编译和下载后即可观察到测试效果。

    值得指出的是,尽管该测试已具有一定的应用价值,当使用起来还是感觉有些不便,不像在ARM上使用的自由。

    回复

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-5-27 02:08:46 | 显示全部楼层
    有几个疑问哈:
    1,为什么要找到文件所在扇区呀?直接读文件系统不行么?
    2,SD 卡格式化的意义,仅仅是为了 windows 下可以放入图片么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-27 08:12:33 | 显示全部楼层
    robe.zhang 发表于 2021-5-27 02:08
    有几个疑问哈:
    1,为什么要找到文件所在扇区呀?直接读文件系统不行么?
    2,SD 卡格式化的意义,仅仅是为 ...

    按相关资料的介绍要求如此,我分析其主要原因在于在FPGA上并没有对应于SD卡的文件系统,从而导致它只能按扇区来顺序读取,为此它需要在存放图片文件前先进行格式化以保证按扇区顺序读取,否则若在有文件删改的SD卡上存放,会出现扇区交错的情况,这样读取就会出现读取异常,显示的正确性便没有保障了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-5-27 21:06:02 | 显示全部楼层
    jinglixixi 发表于 2021-5-27 08:12
    按相关资料的介绍要求如此,我分析其主要原因在于在FPGA上并没有对应于SD卡的文件系统,从而导致它只能按 ...

    1,既然无法读取文件系统,只能读扇区数据,那就把数据存储到扇区中,更直接一点。
    2,格式化 SD 卡,在文件系统中保存文件,就一定能保证文件保存在连续的几个扇区中吗?不一定吧
    3,直接指定扇区号,把文件写进去,既不需要格式化,还能保证文件存在于连续的扇区中,更不用工具去查找文件所在的扇区,因为你直接指定了文件开始扇区号。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-29 09:30:54 | 显示全部楼层
    robe.zhang 发表于 2021-5-27 21:06
    1,既然无法读取文件系统,只能读扇区数据,那就把数据存储到扇区中,更直接一点。
    2,格式化 SD 卡,在 ...

    厂家值得参考,或者这是个中间产品,商用化的谁也不愿意免费的供他人免费使用。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-29 09:46:50 | 显示全部楼层
    另,对应普通的用户借用电脑的格式化和文件保存方式是最简便的实现和操作方式,故可能是其采用这种方式的原因,否则不便直接向扇区写入图片数据;此外,文件系统应该按路径最短的使用原则,由此可保障在格式化后,最大地满足连续性使用的原则,故如此来操作使用。
    当然,这仅是我的分析,具体的真相自然只有开发的工程师最有发言权,考虑也会更周到些!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-5-30 15:12:43 | 显示全部楼层
    jinglixixi 发表于 2021-5-29 09:46
    另,对应普通的用户借用电脑的格式化和文件保存方式是最简便的实现和操作方式,故可能是其采用这种方式的原 ...

    看看以下文章 磨损均衡 和 结论 部分
    https://blog.csdn.net/li_wen01/article/details/105272274

    有很多工具直接把文件写入 block,非商用,不收钱,随便用,给源码

    都是公开的,别搞得那么神秘
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-5-10 20:09
  • 签到天数: 1742 天

    连续签到: 1 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-5-31 00:35:38 | 显示全部楼层
    只能证明这是你的想法,厂家自然会有自己的考虑和原因!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-5-31 14:44:34 | 显示全部楼层
    本帖最后由 robe.zhang 于 2021-5-31 14:58 编辑
    jinglixixi 发表于 2021-5-31 00:35
    只能证明这是你的想法,厂家自然会有自己的考虑和原因!

    1,块设备 block 读写是基本操作,具体使用案例:mbr 修复,刻录启动盘,等。商业化软件不愿意免费给人用,但是开源的工具可以用,和商业化毫不相干。在 linux 系统中命令直接搞定,什么软件都不要
    2,就是因为商家有自己的考虑,各个商家不同的算法,有或者没有磨损均衡不一致,那就更不能在文件系统之上保存文件,想当然就说文件保存于连续的几个 block/块中。换个 sd 卡,还是不是连续,换个厂商,新 SD 卡,旧 sd 卡,你能保证永远是连续的几个 block/块 吗?
    3,这文章是你写的,能说的清楚就说,说不清楚算了,不要拿厂商压人,没搞清楚厂商意图之前,就说厂商值得参考,自己太盲从了吧,还不让人有不同的想法
    4,fat 有源码,linux 文件系统都是开源的,自己可以研究
    5,文件系统和 sd 卡底层不是一一映射,就不能依赖,这是基本逻辑
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    7 天前
  • 签到天数: 597 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2021-5-31 14:51:44 | 显示全部楼层
    本帖最后由 robe.zhang 于 2021-5-31 14:55 编辑

    说最简单的例子,一个磁盘有 10 个块,5 号块是坏块。文件大小占用 5 个块。如果在文件系统中保存文件,大概率会横跨坏块,大概率得不到正确数据。可是指定从第6个块开始保存数据,你永远都能保证读出来的是正确数据。逻辑就这么简单
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-27 00:26 , Processed in 0.208953 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.