24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
技术专题>
嵌入式系统中的PDF生...

技术专题

嵌入式系统中的PDF生成


嵌入式系统中的PDF生成

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

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

PC和嵌入式系统比较

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

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

个人電(diàn)脑

微控制器

内存(B

4,294,967,296

256

ROMKB

1,073,741,824

8

时钟速度(MHz

3000

16

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

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

解决方案

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

在為(wèi)嵌入式系统编写代码时,这是一个常见的困难真正的挑战在于理(lǐ)解微控制器的工作方式并了解其局限性。考虑到这一点,可(kě)以创建快速有(yǒu)效的系统。

请输入搜索关键字

确定