楼凤QM官方网站,qm论坛兼职网,杭州51品茶风楼阁 http://m.sibosz.cn 南京康沙科技有限公司官方网站 Wed, 15 Jan 2025 07:54:16 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.3.31 电源数据采集管理软件技术方案 http://m.sibosz.cn/?p=361 http://m.sibosz.cn/?p=361#comments Tue, 01 Oct 2024 06:06:47 +0000 http://m.sibosz.cn/?p=361 1 系统架构

本软件主要监控电源模块,该??橐豢盥矢吖β拭芏鹊?U电源??椤2酚τ糜谖尴咄ㄐ?,数据通信,网络通信,服务器,工作站等领域,工作效率非常高,稳定性好。

电源??榧叭砑恼寮芄辜肮ぷ髟砣缤?-1所示。

微信图片_20230226155950

图1-1 系统架构

本系统架构主要通过CAN 总线对电源??榻锌刂?、配置、查询等操作。系统本身集成LED状态灯、点阵屏显示、按键,并通过UDP协议把电源状态上报给上位机。

1.1监控??橛布?/b>

1)i.MX6UL-IOT

i.MX6UL-IOT 网络控制器是一款工控与产品设计功能评估于一体的工业控制主板。主板以ARM.Cortex.-A7 内核的i.MX6UltraLite应用处理器为核心,主频528MHz,内置 256MB DDR3 内存和 256MB NAND FLASH,该产品提供了多种功能接口,所有接口通过严格的抗干扰、抗静电测试,可在-40℃~+85℃温度范围内稳定工作,并采用双MiniPCIE 接口设计,满足各种条件苛刻的工业应用,特别是在对通信有很高要求的领域,如智能网关、电力、重工、数据采集终端、工厂自动化、机械设备控制、智能交通、航海船舶、电梯物联网等。

2)KS-D12864KT

KS-D12864KT系列OLED模组,自带 ASCII字符和GBK字库,采用串口控制,口线少,控制简单,操作方便,与各种 MCU均可进行方便简单的接口操作;本系列产品最具有特色的是用户只要写入一些简单的命令,就可以实现绘图和显示功能,用户代码中无需进行繁琐的计算和操作。

该款屏工作温度-40°C~70 ℃,可满足各种条件苛刻的工业应用。

2 软件功能设计

1)基于系统架构设计,软件层面上具备如下功能:

  • CAN通信协议解析:负责接收电源模块的can数据或下发can数据指令
  • 配制文件解析读取功能:负责按照can协议解析配制文件,并生成Hash表,如标准协议ID的Hash表,模块告警Hash表。
  • GPIO驱动控制:负责LED灯控制和按键驱动,负责接收点阵屏的BUSY信号和控制RESET
  • UART串口通信功能:负责向点阵屏下发通信数据
  • 点阵屏菜单显示控制功能:负责点阵屏的各级菜单显示功能
  • UDP通信上传:负责向上位机上传电源模块的相关状态信息

2)点阵屏显示控制功能

可基于用户需求,定制各类型菜单,如此款设备采用2级菜单进行点阵屏数据展示及控制,其中菜单框架如下图

点阵屏菜单图2-1 点阵屏菜单

程序启动后,默认进入电源状态下的二级菜单,由用户操控按键UP/按键DOWN进行电源??榈那谢?。主要操作显示效果如下图:

新建位图图像

图2-2 电源状态

新建位图图像 (2)

图2-3 菜单

新建位图图像 (3)

图2-4 设备IP设置

新建位图图像 (4)

图2-5 电源参数设置

]]>
http://m.sibosz.cn/?feed=rss2&p=361 0
直播课堂管理系统技术方案 http://m.sibosz.cn/?p=389 http://m.sibosz.cn/?p=389#comments Wed, 18 Sep 2024 08:15:15 +0000 http://m.sibosz.cn/?p=389 一、方案介绍

1.1简介

新冠肺炎的全球流行以及由此产生的封锁/隔离政策极大地改变了教育,将传统的同地办公模式转变为纯粹的在线远程学习模式,从而产生了新的教育模式。随着校内学生离开教室并在家中或宿舍继续学习,教师利用各种技术以确保学习的可持续性。这种学习模式转变的核心是广泛采用基于直播的学习模式,教室与学生通过远程通讯工具(如本直播课堂系统),通过软件实时授课,举行会议并与学生进行互动。同时,学生们依靠这些平台与同学进行协作和小组学习。

直播课堂系统为在线教育行业信息化管理及互动提供弹性、稳定的教育直播平台,让教学者开展课堂管理,让学习者接触最实时优秀的教学资源。

1.2平台架构

平台的整体架构如图1-1所示,用户主要分为系统管理员、讲师端和学员端三个层次,其中讲师端负责课程的创建,包含课件及试卷配制,并提交管理员审核,通过审核的课程由讲师负责内容直播。学员端根据直播课堂系统提供的课程来配制个性化的学习空间,如报名相关学科的的课程,并参与到该课程的学习。管理员端主要负责直播课堂系统的系统设置,如短信模板、内容管理、会员管理、课程管理。

框架

图1-1 平台整体架构

1.3 核心能力

1.3.1 直播日历功能

1)日程展示:通过日历表的方式按课程的上课时间向师生显示对应的课程信息;

2)课程查询:支持老师和学生通过选择或切换日期查看当前日期下的课程安排;

3)课程状态:老师的直播日历直观展示当前日期下需要安排的课程信息及课程状态;学生的直播日历直观展示当前日期下需要参与的课程信息及课程状态;

1.3.2直播课程管理功能

1)课程新增:支持老师主动建立课程信息,新增课程提交到平台审核后在平台内公开招生,支持教师填写课程概况、课程介绍并建立课程大纲,按大纲节点上课;同时,向学生及时提醒并显示新增课程,学生可查看详细的直播课信息(包括课程大纲、课程概述、课程介绍等信息)及报名;

2)备课功能:系统支持备课功能,老师能够组建作业、关联作业到课程、关联教学资源到课程;

3)教室主页:直播教室内直接显示课程信息,由教师控制课堂上课下课;

1.3.3 直播教室功能

1)教室主页:直播教室内直接显示课程信息,由教师控制课堂上课下课;

2)课堂资料:课堂备课准备的资料分类显示,包括随堂练习、课件、课后作业等资料;

3)学生列表:直播教室内实时显示连进来的学生数量并以学生列表的形式显示;并且,学生端可进行签到,老师端可设定时间截止签到并保存签到名单;

4)视频源切换及画质切换:直播教室采取视频流直接推送的方式直接展示给已进入教室的学生,视频源支持多类型手动切换,包括直播教室、本机摄像头、电脑桌面、外接摄像头等视频源入口;此外,学生端可切换视频画质;

5)视频对讲:支持教师开放发言权限,学生举手后可直接拉取学生视频信息,进行一对一问答,整个视频交流过程全程展示给所有课堂学生;

6)视频弹幕:老师和学生均有发送弹幕的权利,弹幕展示在弹幕发送区和视频内,学生可点击某条弹幕从而屏蔽发送者的所有弹幕,老师可禁止某学生发送弹幕,但禁止的动作会显示在弹幕发送区,所有学生都会看到;

7)扩容及自动录播:系统能够无限扩容课堂容量,同时系统支持课程直播过程中自动录播的功能;

1.3.4 在线辅导功能

1)随堂互动答题:备课时准备好的随堂练习题目可以在课堂上直接分发给听课学生,实时反馈答题情况并统计分析形成图表展示给教师;

2)作业分发:教师可以在课堂上将课前预习作业和课后作业直接分发给听课学生,学生做完后上传至平台,教师批改后再分发给学生,平台将作业完成情况等信息反馈给教师;

]]>
http://m.sibosz.cn/?feed=rss2&p=389 0
四路视频信号网络传输技术方案 http://m.sibosz.cn/?p=377 http://m.sibosz.cn/?p=377#comments Thu, 18 Apr 2024 07:57:55 +0000 http://m.sibosz.cn/?p=377 一、基本介绍

四路信号网络传输系统共分为两个部分,视频采集端和视频接收端。视频采集端可以将4路AV信号进行采集编码,通过网络进行传输,同时在本地,可以通过VGA或者AV输出,输出格式为四拼屏显示。视频播放端接收网络传递的视频信号,在本地进行回显,同时可以通过??仄鳎?路视频选择,具体为4个单通道视频显示和1个四拼屏显示。视频播放端同时支持网络信号输出,可以外挂网络录像机进行视频保存,保存内容与显示端显示内容一致。

视频采集端和视频播放端基本介绍如下:

1.1 视频采集端?

采集端可最多采集四路AV信号,并通过VGA接口进行本地回显,以测试视频采集端是否工作良好并实施观看监控视频。网口将采集的四路信号及一路四合一拼屏信号共五路信号通过网线传输。

设备参数:

视频输入 4路
VGA输出 1路
网络接口 1路,RJ45 10M/100M自适应以太网口
同步回放 4路
尺寸 482mm(宽)×132mm(高)×250mm(深)
安装方式 3U机箱,可机柜安装或台式放置
电源 AC 220V
工作温度 -10℃—+55℃
工作湿度 10%—90%

1.2 视频接收端

接收端接收来自网络的视频信号,经过解码后由VGA接口和AV接口实现视频输出。接收端面板上外置红外接收端,可通过??仄魅我馇谢晃迓肥悠到斜镜叵允?。

设备参数:

VGA输出 1路
AV输出 1路
红外接口 1路
网络接口 2路,RJ45 10M/100M自适应以太网口
尺寸 482mm(宽)×132mm(高)×250mm(深)
安装方式 3U机箱,可机柜安装或台式放置
电源 AC 220V
工作温度 -10℃—+55℃
工作湿度 10%—90%

二、系统设计思路

视觉信息具有信息量大、易于传播、可被受众直观接受的优势,视频与图片是所有信息中流通最快、占有量最大的信息传播形式。然而视频数据具有数据量巨大、信息高度冗余等实际情况,这些都消耗大量的存储空间和带宽,严重制约了视频信息的传播。FPGA具有高效的并行处理能力,将FPGA引入视频数据处理,可以在一定程度上缓解视频传输的瓶颈。

系统以XC6SLX150为核心,通过TW2867将AV视频信号数字化,转化成YCbCr422格式,利用XC6SLX150将数据写入SDRAM完成存储,对存储的数据,在采集端的回显,将YCbCr422转化成RAW RGB通过VGA进行回显,同时利用TF680,将SDRAM中的信号编码并在网络中进行传输,在显示端利用同样的方法,实现VGA回显和AV回显。

2.1系统构成

系统由视频采集端和视频接收端两个部分组成,两端通过网络连接,系统框图如图1所示。考虑到系统的可扩展性,允许在视频接收端,通过网络进行视频录像保存。

系统整体框架示意图

图1 系统整体框架示意图

系统采用XILINX公司的XC6SL150作为核心平台,加上Silion Image公司的SiI9013 HDMI解码芯片和SiI9134 HDMI编码芯片、 2Gbit的DDR3、4路复用TW2867、10位高速DAC视频转换ADV7123共同构建,系统开发板如图2所示。系统主板实物图

图2 系统主板实物图

1)视频信号采集端

视频采集端的输入包括:4路AV输入接口,对模拟摄像机的信号进行采集,输出端为10/100Mbps自适应网络接口,负责将处理过的信号通过网络进行发送。视频采集端可以通过VGA或HDMI方式对采集到的四路信号进行回显,回显方式为2X2矩阵形式。

视频采集端包括核心板、扩展板和支撑电路三部分。视频核心板主要由FPGA+DDR3+FLASH构成,DDR3容量为2Gbit,核心板框图如图3示。FPGA内部集成DDR控制器的硬Core,可以满足4路720P视频处理需求。

视频采集处理核心板框架示意图

图3 视频采集处理核心板框架示意图

4路视频输入:可输入不多于4路复合视频信号,PAL/NTSC/SECAM自动识别,输出BT656,可多路复用总线,FPGA端解复用。该??椴捎肨W2867,为4路视频解码器,具体介绍详见TW2867-datasheet.pdf。

一路VGA输出:支持RGB数字输入和VGA接口输出,最大支持240MSPS的转换速率,最高支持1080p@60Hz视频图像输出。该??椴捎肁DV7123,具体介绍详见ADV7123datasheet.pdf。

一路HDMI输出:最高支持1080p@60Hz输出。该??椴捎肧II9134,具体介绍详见SII9134datasheet.pdf。

一路RJ45接口:,支持10/100Mbps网络传输速率;

底板上通过板载芯片配置开发板上各个接口芯片和FPGA,底板预留JTAG接口、USB串口,方便后期功能扩展和二次开发。

视频采集端主要工作是对AV摄像头获取的信号通过FPGA进行处理,转换成TMDS格式信号进行网络传输。综合考虑系统的实时性、画面质量、带宽等方面要求,对视频进行编码压缩优化,并通过FPGA实现。视频采集端同时采集不超过4路的AV视频信号,对采集到的视频信号,通过2X2的矩阵在视频采集端通过VGA/HDMI进行回显。视频采集端的工作原理如图4示。

视频采集端工作示意框图

图4视频采集端工作示意框图

该部分的工作过程如下:模拟摄像头从外部采集图像信息,经过BT656解析为RGB格式输入;视频采集??槭凳钡亟邮沾由阆裢凡杉氖菪畔?;色彩转换??榻玆GB格式转换成YCbCr444格式,再色度降采样为YCbCr422格式;视频帧读写??榭刂平枷袷菪慈牖蛘叨脸鯠DR3;再经过HDMI显示??榻枷窀袷缴喜裳晃猋CbCr444,再转换为RGB格式,最终实现HDMI的视频显示。

2.2 网络传输层

考虑到实用性,传输网络允许通过个交换机,交换机可以根据现场环境集成在视频采集端或者视频接收端。交换机的主要作用是完成信号中继和视频系统组网。通过组网,可以方便用户在后期扩展各类视频录制和播放设备。

2.3 视频接收端

视频接收端的输入接口为10/100Mbps自适应网络接口,接受网络传输的信号。输出端主要为视频播放接口,包括:HDMI标准接口、VGA接口、AV视频接口。考虑到后期的扩展需求,视频接收端同样采用FPGA+DDR3+FLASH架构,对接收到网络信号,利用FPGA完成对信号的解码,并通过本地接口,实现视频的播放。其工作原理如图5所示。

视频接收端工作示意框图

图5 视频接收端工作示意框图

视频接收端同样包括核心板、扩展板和支撑电路,扩展板上提供JTAG接口、USB串口和SD卡槽,后期可以根据环境需要,用户可以在视频接收端,对解码后的视频通过FPGA进行二次处理。

1)系统展望

本项目所设计的四路AV视频采集网络传输系统,在保留现有的AV视频采集设备基础上,通过FPGA来对信号进行处理以减少延迟,实现对多路视频信号的实时传输。

在接收端,可以对实时的视频信号进行二次开发,例如通过先验特征,实现4路视频的快速拼接,从而实现全景视频显示;通过多路视频间的目标特征识别,实现多监视器间的目标跟踪与复合监控。也可以对多路视频进行信号复合、信号叠加等操作。

在视频采集端,可以利用FPGA进行硬插补,来对摄像头云台进行高速控制,提高视频目标跟踪的实时性和稳定性。

]]>
http://m.sibosz.cn/?feed=rss2&p=377 0
上位机管理软件实施方案 http://m.sibosz.cn/?p=291 http://m.sibosz.cn/?p=291#comments Sun, 05 Sep 2021 03:00:24 +0000 http://m.sibosz.cn/?p=291 1课题背景和意义

以雷达综合信息处理系统的具体需求为牵引,从解决系统软件版本管理、统一部署、基于图形的故障重构等核心问题入手,开展上位机管理软件的研发工作,满足系统综合信息处理系统管理的需要。

2 需求和功能分析

2.1开发环境

1)硬件平台:

商用笔记本电脑,运行Win7 32bit操作系统。推荐配置如下:

CPU??? 2.5G双核以上;

内存?? ≥ 2G DDR3 1333;

硬盘?? ≥ SATA 300G;

主板支持PCIE 2.0 x16或者3.0 x8以上;

独显?? 1GB DDR3以上显存,支持1200×800分辨率以上。

(2)软件开发环境:

Eclipse或者MyEclipse

(3)开发语言:

Java

2.2 软件需求分析

该项目旨在能够以雷达综合信息处理系统环境下,通过“扫描”动作,收集机柜、机箱、??榈氖坑肫浯邮艄叵?,同时获取各处理节点的信息及机箱连接拓扑图。该项目还要能够对多个处理模块进行健康状态信息显示及对FLASH存储文件的批量处理,SRIO拓扑图实时更新、底层任务实现、权限设置和日志功能。

 

2.3软件功能设计分析

2.3.1人机界面设计与实现

主要研究内容包括:依据具体的功能需求,合理安排界面布局,要求布局简洁、生动。界面风格参考图1、图2所示。

通过“扫描”动作,收集机柜、机箱、??榈氖坑肫浯邮艄叵?,同时获取各处理节点的信息及机箱连接拓扑图;

以“树形结构”的形式加载和显示机柜、机箱、处理??橹涞牟愦谓峁?;

以“Tab页面”的形式实现软件各个功能的切换;

以“图示”方式动态显示模块状态信息(内存配置信息、电压、电流、温度)和实时运行状态(内存使用情况、CPU死活、CPU使用率)。

2.3.2文件批量处理的实现方法

主要研究内容包括:

对多个处理??镕LASH存储文件的批量处理, 主要包括VxWorks镜像文件、*.out工程文件、数据文件、SRIO路由配置表等文件的统一批量更新。

2.3.3实时更新SRIO拓扑图

SRIO路由拓扑图的加载及更新,根据初始SRIO路由表画出拓扑图,拓扑图能实时更新且同时生成新的SRIO路由表,并实时下发到各处理模块。在上位机管理软件初始路由表丢失或损坏情况下,存放在处理??镕LASH中的SRIO路由表能上传到上位机管理软件。

共3个机柜,9个插箱,每个插箱都有SRIO拓扑图,每个插箱SRIO拓扑图的上传和更新都只能针对该插箱内的所有模块,而非所有模块;

若上传和下发SRIO路由表采用网络组播形式,组播的IP地址或端口号应与机柜号、插箱号关联以示区别,或者是在报文内容上加以区别;

需仔细考虑上传和下发报文的内容,??椴逑銫PU在收到报文后应能很方便地获取SRIO发数目的节点是否发生了变化。

2.3.4??樽刺畔⑾允?/h3>

主要研究内容包括:模块健康状态信息的显示,包括内存配置信息、电压、电流、温度等;实时运行状态的显示,包括系统内存使用情况、CPU死活、CPU使用率等。需注意以下两点。

共约80块模块,每个??榈淖刺畔⒕枭媳ǎ?/p>

在状态信息实时上报时,需统筹考虑SRIO路由表的上报。

2.3.5数据信息表示

??樯系哪诖媸萆洗?,可以表格和图形的方式进行显示,表格显示时,数据可以10进制、16进制、整数、浮点数的形式表达,表达方式可人工干预,缺省形式为16进制方式表示。图形方式显示时,可以用2D或3D图形的方式表示。

2.3.6底层任务的实现

SRIO拓扑图的下发和上传,底层需要有相应任务进行配合,同时显示监控功能的内容也需要底层任务按照一定格式进行上报。底层任务实现的具体功能如下。

(1)SRIO路由表上传;

(2)??樽刺畔⑸洗?/p>

(3)收取上位管理软件下发的SRIO路由表,若有新的SRIO节点,对SRIO outbound窗口重新进行绑定;

(4)根据被替换CPU的机柜号、插箱号、槽位号、CPU号加载相应任务;在被替换cpu中,释放原运行任务占用的资源。

2.3.7权限设置和日志管理

权限设置包括:设置系统管理员、设备用户的不同权限,设备用户只能对用户单用的模块进行处理,系统管理员能对所有模块处理;权限仅在于对FLASH的操作和上位备份软件文件夹的管理的不同。

日志管理主要记录上位管理软件中每一操作的对应用户、时间及内容等。

]]>
http://m.sibosz.cn/?feed=rss2&p=291 0
VxWin产品简介 http://m.sibosz.cn/?p=77 http://m.sibosz.cn/?p=77#comments Sun, 15 Aug 2021 07:50:08 +0000 http://qxu1192760270.my3w.com/?p=77 传统分布式的解决方案
由两套计算机平台组成的系统
第一套系统用于高性能实时嵌入式操作系统 VxWorks 下的实时计算
第二套计算机平台用于在 Windows XP 环境下界面的显示
两套计算机平台通过网络进行数据的交换
Improve2008516104429329
VxWin 的优点
节约硬件费用
减少一套计算平台
更小、更紧凑的控制单元
目前 PC 机的性能完全可以负载起第二套操作系统节约软件费用
更短的学习时间
可以使用常用的开发工具 (Visual Studio / Tornado)
使用常用的桌面系统和嵌入式开发工具

更容易移植
从双计算机平台移植到单计算机平台不用更改任何代码即可实现相同功能
VxWorks 下的程序可以直接移植到不需要界面的嵌入式产品中

VxWin 的解决方案
一套计算机平台即可完成显示和实时计算的功能
VxWorks 操作系统用于实时运算
复杂的界面、数据库等应用于 Windows XP 之上
两个操作系统通过虚拟网络或者共享内存进行数据交换
]]>
http://m.sibosz.cn/?feed=rss2&p=77 0
基于RedHat 5.1 系统下的rapidio驱动开发技术方案 http://m.sibosz.cn/?p=245 http://m.sibosz.cn/?p=245#comments Sun, 04 Jul 2021 09:32:57 +0000 http://m.sibosz.cn/?p=245 1.驱动开发环境

1.1驱动开发基础环境

桌面环境:RedHat 5.1,内核:Linux Kernel 2.6.29.6。

2驱动开发框架设计

2.1设备驱动程序模块简介

Linux下的设备驱动程序可以按照两种方式进行编译,一种是直接静态编译成内核的一部分,另一种则是编译成可以动态加载的???。如果编译进内核的话,会增加内核的大小,还要改动内核的源文件,而且不能动态地卸载,不利于调试,所以本驱动开发使用模块方式。

从本质上来讲,模块也是内核的一部分,它不同于普通的应用程序,不能调用位于用户态下的C或者C++库函数,而只能调用Linux内核提供的函数,在/proc/ksyms中可以查看到内核提供的所有函数。

在以??榉绞奖嘈辞绦蚴保迪至礁霰夭豢缮俚暮齣nit_module( )和cleanup_module( ),而且至少要包含和两个头文件。在用gcc编译内核??槭?,需要加上-DMODULE -D__KERNEL__ -DLINUX这几个参数,编译生成的??椋ㄒ话阄?o文件)可以使用命令insmod载入Linux内核,从而成为内核的一个组成部分,此时内核会调用模块中的函数init_module( )。当不需要该??槭?,可以使用rmmod命令进行卸载,此进内核会调用模块中的函数cleanup_module( )。任何时候都可以使用命令来lsmod查看目前已经加载的??橐约罢谑褂酶媚?榈挠没?。

 

 

2.2 PCI总线

PCI是外围设备互连(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,它在目前的计算机系统中得到了非常广泛的应用。PCI提供了一组完整的总线接口规范,其目的是描述如何将计算机系统中的外围设备以一种结构化和可控化的方式连接在一起,同时它还刻画了外围设备在连接时的电气特性和行为规约,并且详细定义了计算机系统中的各个不同部件之间应该如何正确地进行交互。

PCI将计算机系统中的总线子系统与存储子系统完全地分开,CPU通过一块称为PCI桥(PCI-Bridge)的设备来完成同总线子系统的交互,如图2-1所示。

图2-1 PCI子系统的体系结构

图2-1 PCI子系统的体系结构

2.3 PCI的地址空间与系统地址空间

PCI的地址空间:I/O空间,存储空间,配置空间。

PCI总线具有32位数据/地址复用总线,所以其存储地址空间为2的32次方=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。PCI地址空间对应于计算机系统结构中的PCI总线。

假设在一个32位处理器中,其存储器域的0xF000-0000~0xF7FF-FFFF(共128MB)这段物理地址空间与PCI总线的地址空间存在映射关系,如下图2-2。

存储器域与PCI总线域

图2-2 存储器域与PCI总线域的映射关系

当处理器访问这段存储器地址空间时,HOST主桥将会认领这个存储器访问,并将这个存储器访问使用的物理地址空间转换为PCI总线地址空间,并与0x7000-0000~0x77FF-FFFF这段PCI总线地址空间对应。

为简化起见,我们假定在存储器域中只映射了PCI设备的存储器地址空间,而不映射PCI设备的I/O地址空间。而PCI设备的BAR空间使用0x7000-0000~0x77FF-FFFF这段PCI总线域的存储器地址空间。

PCI桥的Base、Limit寄存器保存“该桥所管理的PCI子树”的存储器或者I/O空间的基地址和长度。值得注意的是,PCI桥也是PCI总线上的一个设备,在其配置空间中也有BAR寄存器。在PCI设备的BAR寄存器中,包含该设备使用的PCI总线域的地址范围。在PCI设备的配置空间中共有6个BAR寄存器,因此一个PCI设备最多可以使用6组32位的PCI总线地址空间,或者3组64位的PCI总线地址空间。这些BAR空间可以保存PCI总线域的存储器地址空间或者I/O地址空间,目前多数PCI设备仅使用存储器地址空间。而在通常情况下,一个PCI设备使用2到3个BAR寄存器就足够了。

2.4 TSI 721芯片说明

Tsi721作为一个PCIe设备挂接在AMD780桥片上。具有6个BAR地址空间。BAR0用于访问Tsi721内部寄存器空间,BAR1作为Outbound doorbell地址空间,BAR2/BAR3组合为64位地址空间作为可预取的PCIe到S-RIO地址命中转换空间,BAR4/BAR5组合为64位地址空间作为不可预取的PCIe到S-RIO地址命中转换空间。

Tsi721包含PCIe接口、S-RIO接口、消息引擎、映射引擎以及块DMA引擎等几个主要功能块。

Tsi721通过PCIe接口经AMD780桥片与CPU联接。S-RIO接口经1848上RapidIO网络。

消息引擎实现PCIe接口与S-RIO接口之间的消息通信。包含8路Outbound Message DMA通道和8路Inbound Message DMA通道。Outbound Message DMA通道实现Tsi721主控发送消息,Mailbox可以为0、1、2、3,消息中传送的数据最大可达4KB。Inbound Message DMA通道实现消息接收,每个Mailbox分配两路DMA通道,一路用于ID不匹配的消息接收,一路用于ID匹配的消息接收,每路接收通道包含16个接收上下文,可以用于同时接收多个消息源。

映射引擎实现PCIe接口到S-RIO接口地址转换(PC2SR)和S-RIO接口到PCIe接口地址转换(SR2PC)。PC2SR包含8个本地地址映射窗,每个地址窗包含8个域,可以将地址窗空间转换为8个RapidIO地址段。CPU主控发起PCIe读写操作在BAR2/BAR3或BAR4/BAR5空间内,由该地址窗命中并转换为相应RapidIO地址的RapidIO数据包,实现CPU主控RapidIO数据包或维护包读写。SR2PC包含8个Inbound地址窗和8个Inbound doorbell接收队列。Inbound地址窗用于接收RapidIO读写访问,将命中的RapidIO地址转换为本地地址的PCIe访问。Inbound doorbell接收队列用于接收ID匹配的doorbell。

块DMA引擎实现DMA方式发起数据包或维护包的读写访问。包含8个DMA通道,每个DMA通道均以链式描述符的方式工作,用于主控发起RapidIO读写操作。

2.5 DMA传输说明

DMA传送操作分三个阶段:准备阶段、DMA传送阶段和传送结束阶段。

1)准备阶段:在这个阶段中,CPU通过指令向DMA控制器发送必要的传送参数。

①控制字送DMA控制器指出数据传送方向。

②预置MBAP,即数据块在主存缓冲区的首址。

③置DAR外设的地址,如外设为磁盘机,其地址包括:磁盘机号、盘面号、柱面号和扇区号。

④给WBC预置,指出数据传送字节/字数。

2)DMA传送阶段

DMA接口上传送的一批数据是一个个传送的,在周期挪用控制方式下DMA控制器主要完成以下五个操作。

①外设准备好一次数据传送后,接口向主机发DMA请求。

②CPU响应DMA请求,把总线使用权让给DMA控制器。DMA控制器控制源、目的端口准备传送数据。

③DMA周期挪用一次,交换一个数据信息。

④归还总线使用权,修改主存地址指针和传送计数值。

⑤判断这批数据是否传送完毕:是,结束该工作阶段;没有,又开始传送下一个数据。DMA中信息传送过程.

3)结束阶段

DMA在两种情况下都会进入结束阶段,一种情况是一批数据传送完毕,这是正常结束。另一种情况是DMA发生故障,也要进入结束阶段,这是非正常结束。不论是哪一种情况进入结束阶段,DMA都向主机发出中断请求,CPU执行服务程序查询DMA接口状态,根据状态进行不同的处理。

2.6驱动整体框架结构

结合上面的分析以及查看内核(Linux Kernel 2.6.29.6)的相关头文件,作出如下图的驱动框架结构,见图2-4 ,略。

 

3 驱动开发设计

进行pci设备驱动开发时必须了解如下的PCI数据结构。

pci_device_id

pci_driver

pci_dev

MODULE_DEVICE_TABLE宏,pci_device_id 结构需要被输出到用户空间, 来允许热插拔和模块加载系统知道什么模块使用什么硬件设备,?宏 MODULE_DEVICE_TABLE 完成这个。

3.1 TSI721驱动设计

根据PCI驱动设备要实现的功能,拟定TSI721设备驱动有如下基本模块:

  • 驱动程序的注册与注销
  • 设备的打开与释放
  • 设备的读写操作
  • 设备的控制操作
  • 设备的中断和轮询处理

3.1.1驱动程序的注册与注销

当Linux内核启动并完成对所有PCI设备进行扫描、登录和分配资源等初始化操作的同时,会建立起系统中所有PCI设备的拓扑结构,此后当PCI驱动程序需要对设备进行初始化时,调用如下的代码:

//__init 标记内核启动时所用的初始化代码,其所修饰的内容被放到.init.text section中

这里有个关键结构,tsi721_driver,需要自己定义,代码如下。其中宏DRV_NAME为驱动的名子且在内核中所有 PCI 驱动里面必须具有唯一性。当驱动在内核时,它显示在 sysfs 中在 /sys/bus/pci/drivers/ 下。tsi721_pci_tbl为MODULE_DEVICE_TABLE宏加载探测到的PCI驱动表。probe探测函数将负责完成对PCI设备硬件的检测工作。remove移除函数则负责卸载PCI设备及释放PCI设备占有的系统资源。

3.1.2 PCIe端的配置及地址映射

PCI/PCIe设备有自己的独立地址空间,这部分空间会映射到整个系统的地址空间。在命令行下执行如下命令可看到本驱动独立的地址空间,见图3-5。当然也可通过pci_resource_start,pci_resource_len及pci_resource_flags函数获取其独立地址空间。

tsi721设备地址空间

图3-5 tsi721设备地址空间

I/O?内存可分为可以或者不可以通过页表来存取。本驱动是通过页表存取,内核必须先重新编排物理地址,使其对驱动程序可见,这就意味着在进行任何I/O操作之前,必须调用映射函数;

本驱动IO内存的访问方法是:首先调用pci_enable_device ()激活设备,再通过pci_request_regions()函数通知内核当前PCI将使用这些内存地址,其他设备不能使用,接着将寄存器地址通过ioremap()或ioremap_nocache()映射到内核空间的虚拟地址,之后就可以Linux设备访问编程接口访问这些寄存器了,访问完成后,使用ioremap()对申请的虚拟地址进行释放,并释放pci_request_regions()申请的IO内存资源。

ioremap_nocache()函数说明:

void __iomem * ioremap_nocache (unsigned long?phys_addr, unsigned long?size);

phys_addr:要映射的物理地址

size:要映射资源的大小

映射结果可通过dmesg查看,如下图3-6:

地址

图3-6 tsi721实际分配的空间情况

3.1.3中断初始化

在执行中断初始化之前,要先行确定DMA的32位或64位寻址能力及其他相关设置,并查询及定义PCIe芯片中断寄存器的偏移量。

本驱动PCIe接口可以生成MSI、MSI – x和legacy INTx中断。INTx / MSI / MSI-x生成由一个自由运转中断定时器决定。?在MSI中断方式下,设备通过向OS预先分配的主存空间写入特定数据的方式请求CPU的中断服务,为PCIe系统首选的中断信号机制,对于PCIe到PCI/PCI-X的桥接设备和不能使用MSI机制的传统端点设备,采用INTx虚拟中断机制。

中断处理函数的功能是将有关中断接收的信息反馈给设备,并对数据进行相应读写。中断信号到来,系统调用相应的中断处理函数,函数判断中断号是否匹配,若是,则清除中断寄存器相应的位,即在驱动程序发起新的DMA之前设备不会产生其他中断,然后进行相应处理。因此在使用前要先清0,本驱动定义tsi721_disable_interrupt_ints()函数进行中断初始化工作。

3.1.4维护包

对于高速数据信号的采集处理,需要在驱动程序的初始化模块(probe)中申请大量的DMA循环缓冲区,申请的大小直接关系着能否实时对高速数据处理的成败。直接内存访问(DMA)是一种硬件机制,允许外围设备和主内存直接直接传输I/O数据,避免了大量的计算开销。

因此需定义维护包及块MDA描述符结构体来维护高速数据信号的读写:

 

3.1.5门铃设计及调试

根据TSI721芯片手册可知出站的门铃不需要任何设置。 Tsi721使用专用的PCI BAR1来生成门铃。该BAR1在探测程序中被映射。所以门铃初始化主要完成如下工作:

  • 初始化入站门铃处理DPC和队列
  • 为入站门铃队列分配缓冲区
  • 启用接收所有入站门铃

调试阶段门铃收到后直接打印到内核log中,实际调用时使用回调函数来把收到的门铃消息传给用户,其处理过程如下图,略,其中dbell->dinb()就是回调函数。

3.1.6入站内存映射

数据的接收需要预先配置好入站内存映射区域,用户调用驱动接口传递用户空间的虚拟地址,实际是对应TSI721设备的物理地址。再进行内存映射时,需要计算最小可接受的窗口大小和基本地址。然后扫描与inbound活动区域重叠并标记第一个可用区域IB窗口,扫描过程如下图3-10,略。

扫描到可用区域后,就可把相关信息写入TSI721设备对应的寄存器里,以此来配置入站内存映射区域。测试时,用户配置虚拟地址为0x2000000,大小为1MB(0x100000),执行后已实现入站内存映射,其打印结果如下图3-11,略。

3.1.7 DMA注册???/h3>

由于TSI721设备发送数据有2种方式,即采用CPU发数据模式(需要配置outbound窗口)和DMA发数据模式。DMA发数据模式需要系统内核的支持,需要配置相关的宏定义。Linux Kernel 2.6.29.6并不支持DMA模式,因此再配置DMA注册??槭?,需要先完成相关的宏定义,如宏CONFIG_DMA_ENGINE和CONFIG_RAPIDIO_DMA_ENGINE,同时完成dma引擎的驱动设计。dma引擎的驱动可放在后面考虑。

要实现DMA发送大数据,需要定义如下几个关键结构体及函数。

  • DMA描述符(struct tsi721_dma_desc)
  • DMA通道(struct tsi721_bdma_chan)
  • tsi721_bdma_handler(struct tsi721_bdma_chan *bdma_chan);
  • tsi721_register_dma(struct tsi721_device *priv);
  • tsi721_unregister_dma(struct tsi721_device *priv);
  • tsi721_dma_stop_all(struct tsi721_device *priv);

本驱动在处理数据时,DMA发送接收模块采用tasklet机制。该用于减少硬中断处理的时间,将本来是在硬中断服务程序中完成的任务转化成软中断完成,即是将一些非紧急的任务留到tasklet中完成,而紧急的任务则在硬中断服务程序中完成。tasaklet 有如下特征

  • 一个tasklet可被禁用或启用;只用启用的次数和禁用的次数相同时,tasklet才会被执行;
  • 和定时器类似,tasklet可以注册自己;
  • tasklet可被调度在一般优先级或者高优先级上执行,高优先级总会首先执行;
  • 如果系统负荷不重,则tasklet会立即得到执行,且始终不会晚于下一个定时器滴答;
  • 一个tasklet可以和其他tasklet并发,但对自身来讲必须严格串行处理,即一个tasklet不会在多个处理器上执行

其中关键初始化流程见下图3-12DMA通道初始化流程,略。

 

注册完tasklet及DMA通道后,用户如果发送或接收数据。应用接口驱动会通过rapidio驱动找到空闲的DMA通道,并通过device_alloc_chan_resoureses接口调用tsi721_alloc_chan_resources函数为该通道分配资源,其分配资源的过程和维护包资源分配大致相同,流程如下图3-13,略。如果该通道已经分配资源,则直接使用该通道执行DMA读或写操作。

3.1.8 msix中断

Tsi721设备在初始化时,会检测系统是否支持pci_msi中断机制,如果支持,则调用tsi721_enable_msix函数尝试启用MSI-X支持Tsi721。具体流程如下:

  • 初始化4个消息窗(inbound和outbound)
  • 如果配置DMA,则为DMA引擎初始化MSI-X条目
  • 调用pci_enable_msix函数,向PCI子系统请求分配n个msix中断
  • 将MSI-X矢量信息复制到tsi721私有结构中

确认MSI-X支持tsi721设备后,则需要调用相关函数为MSI-X模式注册中断服务。

3.1.9 TSI721与Rapidio驱动交互

Tsi721驱动负责tsi721设备的注册及相关资源的申请,同时提供各种跟硬件相关的底层接口,并通过Rapidio驱动初始化rio_mport结构体,并向rapidio驱动注册该设备。

Tsi721驱动为上层驱动提供如下接口,见图3-14,略:

3.2 dma驱动设计

Dma驱动主要是仿照linux内核4.1.14版本的dma驱动写的,主要提供DMA通道注册及DMA通道注销等功能,为tsi721、rapidio及rio_mport驱动提供接口支持。

主要接口如下:

dma_release_channel

dmaengine_get

dma_find_channel

dma_sync_wait

dma_issue_pending_all

dma_async_memcpy_buf_to_buf

dma_async_device_register

dma_channel_table_init

dma_wait_for_async_tx

dma_async_memcpy_pg_to_pg

dma_run_dependencies

dma_request_channel

dma_async_device_unregister

dma_async_tx_descriptor_init

dmaengine_put

dma_async_memcpy_buf_to_pg

3.3 rapidio驱动设计

Rapidio驱动主要是提供相关接口供其它驱动调用,大部分接口都依赖与tsi721向其注册的rio_mport设备。该驱动初始化如下图3-15,略:

其中对于tsi721底层设备的关键操作接口有rio_local_read_config_##size、rio_local_write_config_##size、rio_mport_read_config_##size、rio_mport_write_config_##size。这些接口会生成读写8/16/32位数的功能函数。其他涉及tsi721设备的相关配置都需要调用如上接口。

????? 3.1.1 rapidio驱动与tsi721驱动交互接口

Rapidio驱动主要提供rio_mport_initialize(struct rio_mport *mport)函数及rio_register_mport(struct rio_mport *port)函数供tsi721驱动调用。Rapidio驱动如果需要操作tsi721设备,则使用rio_mport提供的rio_ops接口。

rio_mport_initialize函数主要作用是初始化rio_mport设备的端口号等相关信息。rio_register_mport函数主要作用是向rio_mports链表里添加节点,实现如下图3-16,略:

3.1.2 rapidio驱动与路由驱动交互接口

Rapidio驱动主要提供rio_register_scan(int mport_id, struct rio_scan *scan_ops)函数及rio_init_mports(void)函数。rio_register_scan函数的功能是注册枚举/发现tsi721设备的端口。rio_init_mports(void)函数则执行枚举/发现tsi721设备,并创建工作队列。其他关键功能函数如下:

rio_route_clr_table

rio_route_get_entry

rio_route_add_entry

rio_lock_device

rio_mport_get_feature

rio_enable_rx_tx_por

3.1.3 rapidio驱动与应用驱动的交互接口

Rapidio驱动为应用层驱动提供相关接口来操作底层tsi721设备。如设置tsi721设备的端口号,申请inbound入站内存映射,申请dma通道,释放资源等。前文提到的读写8/16/32位数的功能函数则在应用驱动中多次使用。

  • 门铃消息服务(rio_request_inb_dbell)

应用层驱动调用该函数后,tsi721设备收门铃后通过回调的方式把门铃消息反馈给应用层驱动。关键函数rio_request_inb_dbell实现方式如下图3-17,释放门铃消息服务函数为rio_release_inb_dbell。

图3-17 rio_release_inb_dbell函数

  • inbound入站内存映射(rio_map_inb_region)

应用层驱动调用该函数后,tsi721设备会根据参数来配置内存映射。释放内存函数rio_unmap_inb_region。rio_map_inb_region实现方式如下图3-18:

图3-18 rio_map_inb_region函数

  • 快速DMA通道关联(rio_request_mport_dma)

应用层驱动调用该函数后,rapidio驱动会调用dma驱动来实现DMA通道关联。

3.4 路由驱动设计

Tsi721设备的数据收发都依赖于完备的路由网络,因此,配置好路由是实现各个Tsi721设备节点通信的关键所在。路由驱动分为2个部分:路由枚举(rio_enum_mport),路由发现(rio_disc_mport)。该驱动启动后会module_param(next_destid,int,0)获取命令行参数,保存下一个路由节点号。同时,向rapidio驱动注册路由枚举和路由发现这2个接口。Rapidio驱动会根据已经注册到rio_mports链表里的设备节点号来判断是执行枚举还是发现。

由于linux机器作为主节点,因此执行路由枚举。

路由枚举采用递归的形式枚举网络上所有tsi721设备,关键步骤如下图3-19,略

3.5 应用层驱动设计

在probe中需要注册字符设备,实现应用程序对PCIE设备的调用,例如打开,读取,控制等。这些功能都是通过file_operations操作接口实现。例如用户使用该设备完成读取操作,那么用户的过程为open(),read()。而用户调用的这些函数对于linux来说这些调用都会变成系统调用,并指向改设备对应的open(),read()函数,对于该设备来说,指向了xxx_open和xxx_read。

注册字符设备到系统里需要用到alloc_chrdev_region,class_create,device_create等函数。具体实现流程如下图3-20,略:

其中class_interface_register函数注册了处理本地rio_mport设备的接口。

 

mport_add_mport函数实现从LDM设备结构中添加rio_mport。然后调用mport_cdev_add函数创建mport_dev设备,并初始化相关参数。如下图3-21,略:

3.5.1 file_operations操作接口

结构体file_operations在头文件 linux/fs.h中定义,用来存储驱动内核模块提供的对 设备进行各种操作的函数的指针。该结构体的每个域都对应着驱动内核??橛美创砟掣霰磺肭蟮氖挛竦暮牡刂?。如下图3-22,略

其中ioctl函数较为重要,里面涉及各种对tsi721硬件的控制分支。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制。

3.5.2 门铃操作接口

1)发送门铃接口

应用软件需要调用ioctl函数,选择SRIO_DOORBELL_RANGE分支,把需要发送的目的ID号及门铃数据传给驱动。驱动程序在通过rio_mport调用dsend接口,即可发送门铃。

2)接收门铃接口

由于接收门铃是被动操作,因此需要采用阻塞的方式,即有门铃数据来时,接收接口才继续执行下去。在接收门铃前,需要把tsi721驱动接收到的门铃数据通过回调的方式传给应用层驱动,因此,需要添加rio_mport_add_db_filter函数来调用rapidio驱动的回调函数rio_request_inb_dbell(md->mport, md, filter.low, filter.high,rio_mport_doorbell_handler);应用层的回调函数如下图3-23,略:

这样,tsi721驱动只要接收到门铃,就会触发rio_mport_add_event函数。该函数使用kfifo队列来存放门铃消息,并使用wake_up_interruptible(&priv->event_rx_wait);触发mport_read接口去从队列中去数据。

应用层需要通过系统调用read函数来读取门铃数据。mport_read函数关键操作如下图3-24,略

3.5.3 本地/目的id设置接口

由于用户对本地及目的id的设置,就要涉及到路由驱动的路由网络重建立,因此如何重新建立路由网络是本地及目的id设置接口的关键。通过查阅1848芯片手册的路由表流程及其相关特性,路由表流程如下图3-25:

路由表

图3-25 路由表流程

因此,我们决定采用如下方式:

  • 保持原有路由关系,获取路由交换的端口号。
  • 设置目的id号。
  • 重新添加新的路由关系。
  • 设置本地id号。

具体流程如下图3-26,略:

3.5.4 DMA接收/发送数据

应用层驱动的DMA接收/发送数据都是基于底层tsi721驱动及rapidio驱动建立好的DMA接口支持。然后根据工作模式,分配相应的内存空间,具体过程如下:

  • 分配入站内存映射
  • 分配DMA内存空间

DMA接收数据和发送数据有2种工作模式:

  • 基于连续的物理内存来接收/发送数据
  • 基于用户空间页表空间来接收/发送数据

模式1需要分配好连续的物理内存,因此用户层需要通过ioctl接口调用rio_mport_alloc_dma函数预先分配好空间,同时调用mmap函数来建立用户空间到内核空间的映射关系。模式2需要用户自己在用户空间分配好空间,应用层驱动获取用户分配的页表(页表的逻辑地址是连续的,但分配的空间越大理论上物理地址块越多)。

  • mmap函数映射

 

  • DMA接收/发送数据

 

]]>
http://m.sibosz.cn/?feed=rss2&p=245 0
多种通信模式下的电源联网监测系统设计方案 http://m.sibosz.cn/?p=260 http://m.sibosz.cn/?p=260#comments Sat, 05 Jun 2021 01:43:32 +0000 http://m.sibosz.cn/?p=260 一、背景及研究意义

传统的通信电源系统其功能重点是实现数据监控及相关控制执行、显示等功能,存在以下几点突出的问题:

1、各系统都是单机通讯,通讯软件相互不兼容,传输效率低,每台电源成为一个事实上的信息化孤岛,缺少统一管控、高效调度的集中管理系统。

2、设备一旦故障?;?,需通知厂家工程师进行维修,维修效率低,也无很好的手段进行预诊断或远程的检修;

3、在设备使用过程中,积累了大量设备故障及解决办法,而这些数据未收集进行系统科学的分析,造成了资源流失。

4、由于工厂的管理部门或管理系统不能及时得到生产设备的实时生产状况,因而不能做出科学的生产管理计划及措施,极大地影响了车间生产效能的发挥。

5、各种故障及重要操作信息无记录,不方便地查看和跟踪。

6、无法实时监控各电源的运行状态,无法获取程序传输成功或失败的信息反馈;同时大量运行数据的丢失无法对后续生产管理的持续改进提供支撑。

随着物联网与传统产业的深度融合,物联网技术在电源领域的应用得到广泛发展。电源联网监测系统是通过将物联网设备和技术应用于电源设备的采集和传输,通过网络传送给远端诊断系统或CNC系统,从而解决上述实际问题。

 

二、总体设计和框图

电源联网监测系统主要由三大部分组成,其中包括:信息采集、数据服务云端和联网监测端。

电源信息采集主要和电源设备厂家设备连接,根据厂家提供的通信协议进行设备数据交互:

  • 与电源系统进行数据交互,收集并以相应的数据发送协议将报警参数、状态参数等信息。
  • 与数据服务云端进行连接,将采集到的数据信息以相应的传输协议发送到服务器上进行数据存储。

数据服务云端作为整个系统的数据中心,主要负责以下几点工作:

  • 接收和发送控制信息到电源系统上,完成与远端数据传输与交互。
  • 负责存储、管理及检索来自各个电源报警参数、状态参数等信息。
  • 联机远端监测端,输出相应的告警信息和使用状态信息。

联网监测端作为有效数据监测端,主要是向电源生产厂家提供可视化的显示界面,方便厂商实时的监测相应的报警参数、运行参数等信息,根据有效信息定位到电源的所在地并能对当前的状态进行诊断,及早给出相应的维修及保养措施。

以下给出两种联网框图,其中一种是数据采集卡与数据服务云端直接互联,一种是数据采集卡与数据服务云端多级互联。数据采集卡与数据服务云端直接互联如下图所示:

框架

图1.1数据采集卡与数据服务云端多级互联框架

三、基本需求及技术指标

电源联网监测系统硬件技术指标如表1所示:

 

序号 技术指标名称 功能开发后预计达到的参数
1 电源输入 +12V直流输入(根据需要定制)
2 数字开关量 6路IO端口(根据需要定制)
3 通信端口

(数控器接口决定)

1路CAN接口

1路10/100M以太网接口

2路RS232接口(用于调试)

4 外部存储模块 SD卡/MMC卡
5 内存容量 128MB/64MB
6 Nand Flash容量 128MB
7 指示灯 2路(电源灯、系统运行状态灯)

电源联网监测系统软件技术指标如表2所示:

序号 技术指标名称 功能开发后预计达到的参数
 

 

1

 

 

数据云端

服务器系统为Linux系统,支持SSH、FTP、Samba、PHP功能。
支持MYSQL数据库,支持报警参数、运行参数的存储、管理及查询功能。
支持Web服务器,动态显示相应的监测节点数据信息。
 

 

2

 

 

联网监测端

远程连接数据云端,可视化查询、管理用户数据。
可视化显示故障电源的报警参数、运行参数等信息,并能通知维修厂商。
 

 

 

 

3

 

 

 

 

数据采集器

嵌入式Linux操作系统,支持常用标准文件系统格式、Linux用户命令。
支持标准的RS485接口,协议须和电源厂商协定解决。
支持标准的以太网接口,协议须和电源厂商协定解决。
支持标准RS232接口,方便电源厂商监测数据采集器的工作状态。

 

四、系统硬件配置设计

基于项目的基本技术需求,拟采用i.MX6UL工业物联网控制板卡。i.MX6UL-IOT 网络控制器是一款工控与产品设计功能评估于一体的工业控制主板。主板以 ARM.Cortex.-A7 内核的i.MX 6UltraLite应用处理器为核心,主频528MHz,内置256MBDDR3 内存和 256MB NAND FLASH,该产品提供了多种功能接口,所有接口通过严格的抗干扰、抗静电测试,可在-40℃~+85℃温度范围内稳定工作,并采用双 MiniPCIE 接口设计,满足各种条件苛刻的工业应用,特别是在对通信有很高要求的领域,如智能网关、电力、重工、数据采集终端、工厂自动化、机械设备控制、智能交通、航海船舶、电梯物联网等。i.MX6UL-IOT 网络控制器预装实用的 Linux 操作系统、提供测试DEMO 和配套文档,极大提高了Linux 驱动和应用程序的开发效率,使您能顺利地在实践中熟悉i.MX6UltraLite 系列处理器及其 Linux 开发平台,大大降低了Linux 开发入门门槛和学习的难度,可帮助您在短期内实现产品设计阶段的功能验证和开发。

五、系统软件设计

5.1 数据采集端

基于EPS-RS232端口通讯协议,I.MX6UL-IOT 工业控制板卡提供RS232端口与电源模块连接,实时接收电源??榈南喙厥?,并保存及处理。板卡端可采用QT编程环境编写采集端的软件。该软件基于硬件设备可具备如下功能:

  • 通过RS232端口接收电源数据
  • 通过4G??榘训缭词凳笔莘⑺偷街付ㄔ贫?,供联网检测端读取
  • 通过4G??榉⒐Ρň⒌街付ㄊ只?,并把数据保存到云端,以供联网监测端查看及管理

5.2 数据云端

租用阿里/腾讯等云端作为服务器,服务器端采用MYSQL数据来保存数据采集端的数据,保存期限为7,7天以后自动覆盖。数据云端数据库设有账户,不同的账户具有不同的访问权限。如账户A,权限是只能访问南京本地的设备,那么其不能访问其他区域的设备。其具体功能如下:

1)接收数据采集端的数据,并保存到本地,最长可保存7天

2)数据供联网监测端读取

5.3 联网监测端

PC端及手机APP端可实时从数据云端获取数据,显示监控设备的运行状态。同时可查看设备的地址位置,相关参数等。

主要功能如下:

  • 实时显示设备运行状态,显示告警设备
  • 查看设备的地理位置分布
  • 用户权限管理,不同用户可访问的设备不同
]]>
http://m.sibosz.cn/?feed=rss2&p=260 0
IDT TSI721桥片VxWorks/道系统下驱动开发 http://m.sibosz.cn/?p=169 http://m.sibosz.cn/?p=169#comments Sat, 24 Apr 2021 07:44:27 +0000 http://m.sibosz.cn/?p=169 tsi721

Tsi721作为一个PCIe设备挂接在AMD780桥片上。具有6个BAR地址空间。BAR0用于访问Tsi721内部寄存器空间,BAR1作为Outbound doorbell地址空间,BAR2/BAR3组合为64位地址空间作为可预取的PCIe到S-RIO地址命中转换空间,BAR4/BAR5组合为64位地址空间作为不可预取的PCIe到S-RIO地址命中转换空间。

Tsi721包含PCIe接口、S-RIO接口、消息引擎、映射引擎以及块DMA引擎等几个主要功能块。

Tsi721通过PCIe接口经AMD780桥片与CPU联接。S-RIO接口经1848上RapidIO网络。

消息引擎实现PCIe接口与S-RIO接口之间的消息通信。包含8路Outbound Message DMA通道和8路Inbound Message DMA通道。Outbound Message DMA通道实现Tsi721主控发送消息,Mailbox可以为0、1、2、3,消息中传送的数据最大可达4KB。Inbound Message DMA通道实现消息接收,每个Mailbox分配两路DMA通道,一路用于ID不匹配的消息接收,一路用于ID匹配的消息接收,每路接收通道包含16个接收上下文,可以用于同时接收多个消息源。

映射引擎实现PCIe接口到S-RIO接口地址转换(PC2SR)和S-RIO接口到PCIe接口地址转换(SR2PC)。PC2SR包含8个本地地址映射窗,每个地址窗包含8个域,可以将地址窗空间转换为8个RapidIO地址段。CPU主控发起PCIe读写操作在BAR2/BAR3或BAR4/BAR5空间内,由该地址窗命中并转换为相应RapidIO地址的RapidIO数据包,实现CPU主控RapidIO数据包或维护包读写。SR2PC包含8个Inbound地址窗和8个Inbound doorbell接收队列。Inbound地址窗用于接收RapidIO读写访问,将命中的RapidIO地址转换为本地地址的PCIe访问。Inbound doorbell接收队列用于接收ID匹配的doorbell。

块DMA引擎实现DMA方式发起数据包或维护包的读写访问。包含8个DMA通道,每个DMA通道均以链式描述符的方式工作,用于主控发起RapidIO读写操作。

]]>
http://m.sibosz.cn/?feed=rss2&p=169 0
实时嵌入式操作系统VxWorks下图形开发应用方案 http://m.sibosz.cn/?p=65 http://m.sibosz.cn/?p=65#comments Mon, 15 Mar 2021 07:46:10 +0000 http://qxu1192760270.my3w.com/?p=65 硬件平台:

Intel PentiumM 1.2Ghz、512M、Chips&Tech 69030
软件平台:

Tornado 2.2.1、WindML 3.0.3、Tilcon 5.4、Zinc 6.0、JWorks 4.1
简介如下:

  1. 实现VxWorks下基于WindML的通用双屏显示应用框架,支持Tilcon、Zinc等主流嵌入式GUI系统的双屏显示应用需求。
  2. 成功解决了Tilcon、Zinc下的中文显示问题。
  3. 利用JWorks组件为VxWorks提供JAVA支持,支持基于SWT的JAVA图形应用程序。
  4. 提供符合OpenGL 1.2规范的标准图形函数支持,满足3D显示的应用需求。

 

该方案已在客户成功应用。

]]>
http://m.sibosz.cn/?feed=rss2&p=65 0
ATI M9系列显卡成功应用于风河平台系列产品 http://m.sibosz.cn/?p=67 http://m.sibosz.cn/?p=67#comments Tue, 15 Sep 2020 07:46:39 +0000 http://qxu1192760270.my3w.com/?p=67 硬件平台:

Intel Pentium M 1.6Ghz、512M、ATI M9000 64M

 

软件平台:

Tornado 2.2.1、VxWorks 5.5.1 / WindML 4.1 / WindML 4.2

Workbench 2.4、VxWorks 6.2、WindML 4.1

Workbench 2.5、VxWorks 6.3、WindML 4.2

 

经过技术攻关,成功的在风河平台系列产品中,利用WindML4.1/WindML 4.2提供的最新XFree86驱动框架实现对ATI M9000显卡的多种显示模式支持。目前可支持最高显示模式 分辨率 1600×1200 色深 24bit刷新率 60hz。

同时,特别针对希望使用相比WindML 3.0.x具有更多新特性的WindML 4.1/WindML 4.2软件包的风河旧版本平台产品客户,提供将WindML 4.1/WindML 4.2移植为支持Tornado 2.2.1/VxWorks 5.5.1的完整解决方案。

目前正在着手进行该平台下ATI各类型显卡的驱动兼容性测试工作?;诟闷教ǖ腡ilcon应用测试同步进行中。

]]>
http://m.sibosz.cn/?feed=rss2&p=67 0
主站蜘蛛池模板: 鄂伦春自治旗| 合作市| 宣汉县| 兴仁县| 筠连县| 光山县| 万宁市| 新和县| 若羌县| 定襄县| 和田县| 聊城市| 顺义区| 阜新市| 桦南县| 南宁市| 浦江县| 富平县| 木兰县| 华亭县| 开封市| 巴彦淖尔市| 伊春市| 河间市| 文山县| 盈江县| 汾阳市| 九龙坡区| 富源县| 五河县| 诸暨市| 东乌| 石阡县| 威信县| 高要市| 自贡市| 宁化县| 金乡县| 芷江| 泽库县| 潮安县|