24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
嵌入式系统中的PDF生...

技术专题

嵌入式系统中的PDF生成


嵌入式系统中的PDF生成

传统的数据记录器将数据显示为纯文本,逗号分隔值(CSV)或可扩展标记语言(XML)。如果您具有支持软件来处理数据的格式,这些格式的文件就可以很好地工作,但是,如果您正在寻找一种分发文件的快速方法,任何人都可以打开,则便携式文档格式(PDF)更适合。这是因为数据是以一致且易于管理的方式呈现的;除了文字墙外,还可以为用户提供清晰布局的摘要,图表和图像。任何人都可以轻松打开或分发数据,而无需任何软件,而无需拥有计算机上已有的软件。

我们已经开发了嵌入式软件,可以直接在微控制器(Wikipedia)上生成动态PDF文件,然后可以将其写入SD卡或通过USB传输(该设备可以显示为大容量存储设备,就像您的闪存驱动器一样) )。用作数据记录器只是潜在的应用之一。

PC和嵌入式系统比较

我们首先使用C#编写软件,然后在PC上运行,因为这可以让我们快速轻松地确定以代码形式生成PDF所需的内容事实证明这相当简单,尽管我们已经知道在为嵌入式设备(在这种情况下为8PIC单片机)编写代码时会遇到独特的挑战。

当编写在PC上运行的软件时,程序会有大量资源可供使用,下表显示了典型PC和典型8位微控制器之间的比较。

个人电脑

微控制器

内存(B

4,294,967,296

256

ROMKB

1,073,741,824

8

时钟速度(MHz

3000

16

完全不同!一台PC的内存(RAM)增加了1700万倍,存储(ROM)增加了1.34亿倍,并且运行速度提高了188倍!因此,虽然很容易在PCRAM中生成整个PDF文件,但在许多微控制器上却根本不可能做到这一点。

通常,这不会造成太大的问题,因为可以开始写入文件。但是,PDF格式是为快速查看而设计的-实现此目的的一种方法是使用文件末尾的表格,该表格引用所有组件(页面,图像,字体等)的位置。该表允许查看软件直接读取文件的所需部分,从而节省了时间和内存。这种引用技术以及其他引用技术可能很难以编程方式进行处理。

解决方案

最简单的解决方案是在返回并填充所有丢失的引用之前在RAM中生成整个PDF,但是,如前所述,由于嵌入式系统的限制,这是不可能的。通过使用多种预测性和补偿性方法,生成软件可以克服这一困难-逐步逐行生成文件并将每个文件推入外部存储设备(例如SD卡)。通过这种方式,在任何时间点只有少量文件存储在内存中,从而确保有限的资源不会被耗尽,同时仍然允许大型,复杂的PDF文件。下面显示了以此方式生成的一个简单示例页面。

在为嵌入式系统编写代码时,这是一个常见的困难真正的挑战在于理解微控制器的工作方式并了解其局限性。考虑到这一点,可以创建快速有效的系统。

请输入搜索关键字

确定