0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现对TS-7680硬件的支持

星星科技指导员 来源:嵌入式计算设计 作者:Michael Schmidt 2022-06-29 14:20 次阅读

该项目建立在文章“使用 Node.js 加快嵌入式系统上市时间”的基础上,提供并展示了如何为简单的 Web 服务器实现代码。Web 服务器提供了控制板的能力,例如通过获取和设置数字 I/O (DIO) 值(或打开和关闭 LED)。它还提供了一个简单的客户端网页来访问此功能,使其成为一个独立的解决方案,用于通过电路板本身提供的网页来控制电路板。

在“在运行 Linux嵌入式单板计算机上开始使用 node.js ”中,我们展示了如何在Technologic Systems TS-7680等单板计算机 (SBC) 上安装 node.js。在这个示例项目中,我们展示了如何实现对 TS-7680 硬件的支持,并提供一个简单的网页来控制板。DIO 控制通过可视化界面进行说明,该界面可以显示和更改板上四个 LED 的状态。板上的模数转换器ADC) 的当前状态也会定期显示和更新。最后,提供了一个按钮,该按钮对加速度计进行一秒钟的采样并显示其数据图表。

该项目由两部分组成:

在用户(客户端)网络浏览器中运行的 JavaScript 和 HTML

用于直接硬件接口(服务器)的 Node.js 项目文件(包括 JavaScript、包文件和 C++ 源代码)。

这将在支持 ARMv5 CPU、使用节点 0.10 的 Technologic Systems TS-7680 上进行演示。

注意:正确安装此演示需要具有 256 MB 板载 RAM 的 TS-7680。如果您想在只有 128 MB RAM 的板上运行此演示,请从该 ftp 服务器下载包含 service-mx28adc 模块的压缩包, 并通过解压缩包含您的 node_modules 目录的目录来安装它。之后apt install命令将识别该模块已经安装并且不会尝试编译它。

让我们看看我们将要创建的文件。

对于客户:

ts7680.js –这是 TS-7680 用户界面的实际实现。它将显示 LED 和 ADC 的当前状态,并提供对加速度计进行采样的接口。

index.html –这是显示用户界面的 HTML 代码。

7680-0000.JPG 至 7680-1111.JPG –这些图像文件将在 Web 界面中显示 TS-7680 的板载 LED 状态。LED 上的每个位组合(0000、0001、0010 等)都存在一个文件。

服务器上有几个 Node.js 包,每个包执行特定的功能:

ts7680-demo-server –这是顶级服务器,用于指定和控制服务器组件的实例化。它还包含使整个项目成为独立包所需的所有客户端文件。

server.js –实现

package.json –清单

README.md – Markdown格式的自述文件

file/ –包含客户端文件的子目录

express-modular-server –这是一个模块化框架,用于从 Node.js 提供 HTTP 和 HTTPS 网页。

server.js –实现

package.json –清单

README.md – Markdown格式的自述文件

service-app –服务于 Web 应用程序(app.html + app.js + 应用程序特定模块)的插件,用于在其中实现的默认文件处理。

default-file.js -静态文件服务的实现

package.json –清单

README.md – Markdown格式的自述文件

app.js –应用处理的实现(本项目中未使用)

service-mma8451 –为 TS-7680 上的NXP MMA8451 3 轴加速度计实现应用程序编程接口 (API) 支持的插件。

mma8451.js –实施

package.json –清单

README.md – Markdown格式的自述文件

service-mx28adc –实现对TS-7680 上i.MX28 CPU 低分辨率模数转换器 (LRADC)外围设备的支持的插件。

mx28adc.js –实现 API 支持的插件

mx28adc.cc –实施

package.json –清单

Binding.gyp –构建文件

README.md – Markdown格式的自述文件

service-gpio –通过 Linux /sys 文件系统实现对 GPIO 的 API 支持的插件。

gpio.js –实现

package.json –清单

README.md – Markdown格式的自述文件

现在,进入代码。

ts7680-演示服务器

首先,让我们看看我们将调用以运行我们的服务器的顶级 JavaScript 文件:server.js。

express-modular-server 软件包使创建 Web 服务器变得容易。我们为每个服务编写一个插件,用于初始化 API 端点和服务请求。然后我们配置服务器,指定每个所需的端点,并启动服务器。

对上面的代码逐段剖析,我们首先将当前工作目录更改为安装包的目录。这是因为我们的包将所有静态提供的文件封装在file/相对于该目录的子目录中。

process.chdir(__dirname)

接下来,我们需要 express-modular-server:

var server = require(“express-modular-server”)

这将返回一个函数,我们使用初始化数据作为同一表达式的一部分调用该函数:

({

http:true

})

在这里,我们传递一个包含初始化参数的对象。我们感兴趣的唯一参数是运行 HTTP 服务器。参数http:true指定了这一点,尽管我们也可以提供一个数字端口而不是 true。默认使用端口 8080。

然后我们将每个 API 添加到服务器,从包名称中省略“service-”前缀。初始化返回模块对象,该对象具有添加与关键 API 关联的 API 的功能。

.API(“gpio”)

当这个函数返回时,gpio 插件(来自 service-gpio 包)被加载。此函数返回模块对象本身,因此我们可以链接另一个调用以添加任意数量的 API 端点:

.API(“mma8451”)

.API(“mx28adc”)

.API(“app”)

现在我们为加速度计、ADC 和服务 Web 应用程序添加了端点。添加完端点后,我们再调用一次来启动服务器:

.start()

而已!这是我们的代码的样子:

poYBAGK774OAV_kBAACIiwacH7s782.png

在安装演示之前需要运行一些命令才能使安装和构建过程正常工作。首先,由于 Debian 中缺少标头,我们需要升级 npm 并设置一个符号链接来指向它:

poYBAGK7742ATI2qAABQwTFpthM870.png

一旦 npm 升级,任何时候它运行都会返回一个错误,说 npm 不支持 node.js v0.10.29,你应该升级到更新的版本。忽略此警告,因为 v0.10.29 是 TS-7680 支持的最新版本,因为较新的版本缺少 ARM v5 支持。

您可以使用单个命令安装整个演示:

npm install ts7680-demo-server

我们的下一部分将从 GPIO 模块开始详细检查服务器使用的模块。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23231

    浏览量

    660459
  • adc
    adc
    +关注

    关注

    98

    文章

    6483

    浏览量

    544407
  • 服务器
    +关注

    关注

    12

    文章

    9096

    浏览量

    85307
收藏 人收藏

    评论

    相关推荐

    TS3DV520E的传输距离可以扩大吗?

    目前使用的切换芯片:TS3DV520E带宽:1.65 Gbps转接后传输距离:约300mm 我们现在做如下两个升级: 1. 带宽支持到2.5Gbps; 2. 对差分信号进行驱动放大,使其能够传输
    发表于 12-16 08:36

    ts3dv642是否真正支持60hz?

    ts3dv642,该芯片datasheet中写的支持60hz HDMI2.0;但是绿联的一款采用该芯片的产品中却写的只支持30hz,帮忙确认一下该芯片是否真正支持60hz,谢谢!
    发表于 12-06 08:25

    受电端Type-C设计,PD协议的纯硬件实现详解

    power)双重角色的可供电设备 在SINK纯耗电方的PD协议的实现方式通常需要单片机配合软件代码,在产品开发过程中不仅需要硬件开发团队,还需要软件的支持,极大的增加了开发难度。所以为了使电子产品SINK纯耗电方的开发更为简便
    的头像 发表于 11-13 11:01 296次阅读

    使用TS5A22362必须要接负载吗?

    在使用TS5A22362作为音频SPK通道切换输出,使用万用表测量SPK输出频率时发现未接负载的情况下(末端接万用表)音频信号震荡很厉害;大约会产生1.5MHZ的震荡频率;请问这是正常的吗?使用TS5A22362必须要接负载吗?
    发表于 11-01 08:21

    SRC4392怎么实现硬件控制?

    SRC4392芯片支持软件模式和硬件模式, 看了参考设计,还是没弄懂,怎么实现硬件控制,要是有光硬件模式的原理图就好了! 只看SRC439
    发表于 10-31 06:44

    新的 MathWorks 硬件支持支持从 MATLAB 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动化代码生成

    在 Snapdragon® 系列处理器中。MathWorks 硬件支持包,则专门针对 Qualcomm Technologies 的 Hexagon NPU 架构进行优化,实现 MATLAB
    的头像 发表于 09-23 11:59 251次阅读

    利用CLB实现基于硬件的同步整流控制

    电子发烧友网站提供《利用CLB实现基于硬件的同步整流控制.pdf》资料免费下载
    发表于 08-31 09:44 0次下载
    利用CLB<b class='flag-5'>实现</b>基于<b class='flag-5'>硬件</b>的同步整流控制

    德思特分享 突破FPGA限制:德思特TS-M4i系列数字化仪利用GPU加速实现高效块平均处理

    本白皮书将展示如何使用德思特TS-M4i系列数字化仪的高速PCIe流模式来在软件中实现块平均处理,从而突破FPGA的限制。我们用了TS-M4i.2230(1通道,5 GS/s,8位垂直分辨率,1.5 GHz带宽)作为例子,对比
    的头像 发表于 08-20 09:26 1266次阅读
    德思特分享 突破FPGA限制:德思特<b class='flag-5'>TS</b>-M4i系列数字化仪利用GPU加速<b class='flag-5'>实现</b>高效块平均处理

    突破FPGA限制:TS-M4i系列数字化仪利用GPU加速实现高效块平均处理

    的容量,最大样品量通常在32k到500k之间。 本白皮书将展示如何使用TS-M4i系列数字化仪的高速PCIe流模式来在软件中实现块平均处理,从而突破FPGA的限制。我们用了TS-M4i.2230(1通道,5 GS/s,8位垂直分
    的头像 发表于 08-19 15:27 320次阅读
    突破FPGA限制:<b class='flag-5'>TS</b>-M4i系列数字化仪利用GPU加速<b class='flag-5'>实现</b>高效块平均处理

    神经网络专用硬件实现的方法和技术

    神经网络专用硬件实现是人工智能领域的一个重要研究方向,旨在通过设计专门的硬件来加速神经网络的训练和推理过程,提高计算效率和能效比。以下将详细介绍神经网络专用硬件
    的头像 发表于 07-15 10:47 1055次阅读

    PSoC 6 MCUBoot和mbedTLS是否支持加密硬件加速?

    。 使用 MCUBoot 验证两个应用程序时,运行时间大约需要五秒钟。 在 README.md 的 \"安全 \"一栏中写道 与软件实现相比,硬件加速加密技术将启动时间缩短了四倍多
    发表于 05-29 08:17

    TSIM是否支持TC3xx系列在没有硬件的情况下调试应用程序?

    你好, TSIM是否支持TC3xx系列在没有硬件的情况下调试应用程序? AURIX TC3xx - Free Entry ToolChain 是否有助于实现上述目的?
    发表于 05-17 07:02

    【天拓四方】物联网网关硬件和云端分别实现了哪些功能?

    网关硬件和云端分别实现了哪些功能,并探讨这些功能如何为物联网系统带来的支持。 一、物联网网关硬件的功能 物联网网关硬件作为物联网系统中的关键
    的头像 发表于 04-19 16:18 314次阅读

    映泰发布锐炫A750OC显卡,支持7680×4320@60Hz显示

    映泰锐炫A750 OC显卡厚度为2.2槽,配备三个DP2.0接口,可实现7680*4320@60Hz的高分辨率输出;同时还具备一个HDMI 2.0接口,支持4096*2160@60Hz的高清视频传输。
    的头像 发表于 04-12 16:31 836次阅读

    STSPIN32F0支持硬件浮点运算吗?

    STSPIN32F0 支不支持硬件浮点运算
    发表于 03-13 06:32