CN103136140A - 一种用于数控总线通讯板的数据读写装置和方法 - Google Patents
一种用于数控总线通讯板的数据读写装置和方法 Download PDFInfo
- Publication number
- CN103136140A CN103136140A CN2011103988495A CN201110398849A CN103136140A CN 103136140 A CN103136140 A CN 103136140A CN 2011103988495 A CN2011103988495 A CN 2011103988495A CN 201110398849 A CN201110398849 A CN 201110398849A CN 103136140 A CN103136140 A CN 103136140A
- Authority
- CN
- China
- Prior art keywords
- gpmc
- bus communication
- module
- data read
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
本发明涉及嵌入式技术领域,具体的说是一种用于数控总线通信板卡的数据读写装置和方法。本发明的主控板通过主控板上的GPMC与总线通信板卡相连,上位机通过GPMC读写总线通信板卡上的存储器件,完成上位机命令的发送以及总线反馈数据的接收;所述总线通信板卡,通过总线通信板卡上的GPMC与主控板相连。本发明在方法上采用Linux内核模块的编程模型,包括模块初始化,完成GPMC配置操作;中断服务例程,完成GPMC读写操作;模块清除处理,完成GPMC释放操作;编译成可动态加载的内核模块;对模块进行加载和卸载。本发明硬件设计简单,编程模型灵活,通用性强,灵活性好。
Description
技术领域
本发明涉及嵌入式技术领域,具体的说是一种用于数控总线通信板卡的数据读写装置和方法。
背景技术
高速、高精、开放式与智能化是数控技术的发展趋势,传统基于模拟接口的数控系统因其单向通信及存在干扰等问题,越来越凸显出局限性。而基于现场总线的数控系统因具有分布式控制及全数字通信等优点,能满足高速、高精、开放式与智能化的控制需求。基于现场总线的数控系统结构如图1所示。数控系统中的主要部件包括数字控制器、伺服驱动器以及IO设备等。现场总线的主设备以总线通信板卡的形式插入数控装置,从设备一般直接在伺服驱动器的硬件板上实现,主设备和设备通过现场总线进行通信。总线通信板卡数据读写接口的实现方式依据平台而定,其在PC平台上的实现大多采用的是成熟的PCI接口,而在嵌入式平台上则很少有类似的成熟接口可用,即使有也需要复杂的电路或专用芯片的支持。如图2所示,USB接口的实现采用了USB协议芯片PDIUSBD11,而图3所示RS232接口的实现则采用了电平转换芯片MAX232,这些实现方法需要设计额外的接口电路、连线复杂、编程困难,通讯方式单一,难以满足多种多样的板级通讯需求。
发明内容
为了克服现有的嵌入式平台常规接口电路复杂、编程困难的不足,本发明提供一种板级的数据读写方法,该方法不仅不需要专门的电路及协议芯片支持,而且编程模型简单,能方便地应用于板级通讯。
本发明为实现上述目的所采用的技术方案是:一种用于数控总线通讯板的数据读写装置,主控板通过主控板上的GPMC与总线通信板卡相连,上位机通过GPMC读写总线通信板卡上的存储器件,完成上位机命令的发送以及总线反 馈数据的接收;所述总线通信板卡,通过总线通信板卡上的GPMC与主控板相连。
所述所述主控板包括处理器、以太网接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA。
所述总线通信板卡包括FPGA芯片、GPMC、以太网接口。
所述上位机或主控板采用Linux操作系统,对Linux内核源码进行修改。
一种用于数控总线通讯板的数据读写方法,采用Linux内核模块的编程模型,包括以下步骤:
模块初始化,完成GPMC配置操作;
中断服务例程,完成GPMC读写操作;
模块清除处理,完成GPMC释放操作;
编译成可动态加载的内核模块;
对模块进行加载和卸载。
本发明具有以下优点:
1.硬件设计简单。不需要额外的电路或芯片支持,具有规范的接口。
2.编程模型灵活。只需要配置好接口的工作模式,即可像读写普通存储器一样进行板级数据通讯。
3.通用性强。支持多种通讯模式:同步/异步;地址数据复用/非复用。支持众多外部存储器件:异步方式的类SRAM存储器以及专用集成电路器件;NORflash器件;NAND器件;Pseudo-SRAM器件等。
4.灵活性好。本发明提供了用于参数配置的完备的API,用户可以通过应用接口或系统调用对读写接口进行定制,使其满足实际的数据通讯需求,获得最佳效果。
附图说明
图1为本发明应用的数控系统结构图;
图2为现有技术对USB接口的一种实现;
图3为现有技术对串行接口的一种实现;
图4为本发明应用的数控系统硬件结构图;
图5为本发明应用的GPMC的工作原理图;
图6为本发明应用的OMAP3530主控板GPMC模块的电路原理图;
图7为本发明应用于SSB-III总线通信板卡的GPMC接口原理图;
图8为本发明中编程模型的模块初始化流程图;
图9为本发明应用的GPMC读时序图;
图10为本发明应用的GPMC写时序图;
图11为本发明中编程模型的中断服务流程图;
图12为本发明中编程模型的模块清除流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
如图4所示,为本发明所涉及的数控系统硬件结构图,由OMAP3530主控板和SSB-III总线通信板卡构成。OMAP3530主控板包括以下模块:OMAP3530处理器、以太网接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA等;SSB-III总线通信板卡主要由FPGA芯片、GPMC、以太网接口等构成。两板之间通过GPMC接口进行通信。本发明所应用的现场总线为SSB-III(Synchronous Serial Bus-III,第三代同步串行总线)数控总线。严格以OMAP3530主控板的机械尺寸为标准,确定SSB-III总线通信板卡的整板大小、通孔位置、GPMC接口位置、电源接口位置等参数。
如图5所示,为GPMC的工作原理图,GPMC全称为general-purpose memory controller,即通用存储控制器,是OMAP平台处理器特有的外设接口。它是一个16位的外部存储控制器,可以为NOR flash、NAND flash、pSRAM等传统存储器件提供读写接口。包括六个功能模块:(1)L3互连端口接口;(2)地址译码器、GPMC配置寄存器、片选配置寄存器;(3)访问引擎;(4)预取和写置入引擎;(5)纠错代码引擎;(6)外部存储器端口接口。
如图6所示,为OMAP3530主控板GPMC模块的电路原理图,包括数据、地址、以及控制信号。完整的GPMC信号包括:GPMC_A[10:1],GPMC_D[15:0], GPMC_NCS[7:0],GPMC_LK,GPMC_NADV_ALE,GPMC_NOE,GPMC_NWE,GPMC_NBE0_CLE,GPMC_NBE1,GPMC_NWP,GPMC_WAIT[3:0]。
如图7所示,为本发明方法中应用于SSB-III总线通信板卡的GPMC接口原理图,接口信号与OMAP3530主控板的GPMC接口一一对应。实际实现中使用到的信号包括地址线GPMC_A[10:1],数据线GPMC_D[15:0],并且对控制信号做了精简,只用到nCE,nOE,nWE。
为了能方便地配置并控制GPMC,需要对Linux内核源程序进行修改,具体包括:(1)导出GPMC时序配置函数,即在arch/arm/mach-omap2/gpmc.c中添加语句EXPORT_SYMBOL(gpmc_cs_set_timings);(2)增加GPMC时钟频率导出函数,即在在arch/arm/mach-omap2/gpmc.c中添加show_gpmc_clk函数定义,并导出符号EXPORT_SYMBOL(show_gpmc_clk);(3)增加GPMC时钟频率导出函数的声明,即在arch/arm/plat-omap/include/mach/gpmc.h中增加extern int show_gpmc_clk(int cs,const struct gpmc_timings*t);
编程模型采用Linux内核模块的编写方式,包括三部分:模块初始化,中断服务例程,模块清除处理,即init_module、isr_schedule、以及cleanup_module。
模块初始化流程如图8所示,GPMC参数配置的关键步骤在这一流程中完成,图中加标注的若干步骤具体实施方法如下:
[1]调用gpmc_save_config(),保存当前与GPMC配置相关的寄存器值;
[2]查询是否存在已使能的片选,通过清除GPMC_CS_CONFIG7中的相应比特位,将该片选禁用;
[3]调用my_gpmc_iit(),包含以下步骤:
(1)配置CONTROL_PADCONF_GPMC_nCS3,使对应引脚工作在模式0;
(2)配置CONTROL_PADCONF_GPMC_nCS7,使对应引脚工作在模式0;
(3)配置CM_FCLKEN_PER和CM_ICLKEN_PER,使能GPIO的时钟绑定;
(4)配置GPMC_SYSCONFIG,使GPMC工作在“smart idle mode”;
(5)配置GPMC_CONFIG,使GPMC工作在限址模式(2Kbyte);
(6)为片选3申请地址空间,并对申请到的地址进行ioremap;
(7)配置GPMC_CS_CONFIG1,使GPMC读写均工作在同步方式,devicesize=16bit,devicetype=NOR,地址/数据非复用;
(8)调用gpmc_cs_set_timings(),时序参数根据图9,图10而定;
[4]调用request_gpio_pins(),为复位,中断,GPMC时钟三个信号申请GPIO,并初始化;
[5]调用mcb_reset(),在复位信号GPIO上给出50ms的低电平脉冲;
[6]调用setup_ssb3_irq(),为中断引脚申请中断号,设置中断信号触发类型为下降沿触发,将中断号和中断函数进行绑定,使能中断;
[7]关闭板卡,设置站点类型、从站个数、通信周期长度、从站地址等参数,使能板卡;
[8]释放GPMC片选,恢复GPMC系统配置,释放GPIO,返回-1;
中断服务函数流程如图11所示,包括禁止中断线、获取总线通信板卡的反馈数据并进行行规解析、获取主控板上位机命令并写回总线通信板卡、清除中断标志位、使能中断线。其中涉及到GPMC操作的步骤如下:
[1]采用读函数_raw_readw(),分两次读取SSB-III总线通信板卡存储器某个值(假设地址偏移量为offset)的高、低16位,然后拼接成完整的数据,操作代码示意如下:
high=_raw_readw(gpmc_cs_base+offset+2);
low=_raw_readw(gpmc_cs_base+offset);
data=low+(high<<16);
[2]将数据按高低16位进行分解,然后调用写函数_raw_writew(),将数据写回SSB-III总线通信板卡(假设地址偏移量为offset),操作代码示意如下:
low=(u16)data;
high=(u16)(data>>16);
_raw_writew(low,gpmc_cs_base+offset);
_raw_writew(high,gpmc_cs_base+offset+2);
模块清除处理流程如图12所示,包括清除总线控制板hal组件、关闭SSB-III总线控制板、释放中断线、释放GPMC片选、恢复GPMC初始系统配置、释放GPIO,每个步骤对应的函数调用如下:
[1]hal_exit(comp_d);
[2]rt_release_rq(irq);
[3]gpmc_cs_free(MY_CS);
[4]gpmc_restore_config();
[5]gpio_free(gpio_rst);gpio_free(gpio_int);
软件编写完毕之后,将其编译成可动态加载的内核模块。在操作系统命令行环境下使用模块插入、移除命令,可以对模块进行加载和卸载,下面给出具体的操作步骤:
模块加载:
[1]操作系统命令行下使用cd命令切换到模块所在目录
[2]使用insmod命令加载模块,具体格式为“insmod模块名”
模块卸载:
[1]操作系统命令行下使用cd命令切换到模块所在目录
[2]使用rmmod命令卸载模块,具体格式为“rmmod模块名”。
Claims (5)
1.一种用于数控总线通讯板的数据读写装置,其特征在于,主控板通过主控板上的GPMC与总线通信板卡相连,上位机通过GPMC读写总线通信板卡上的存储器件,完成上位机命令的发送以及总线反馈数据的接收;所述总线通信板卡,通过总线通信板卡上的GPMC与主控板相连。
2.根据权利要求1所述的一种用于数控总线通讯板的数据读写装置,其特征在于,所述所述主控板包括处理器、以太网接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA。
3.根据权利要求1所述的一种用于数控总线通讯板的数据读写装置,其特征在于,所述总线通信板卡包括FPGA芯片、GPMC、以太网接口。
4.根据权利要求1所述的一种用于数控总线通讯板的数据读写装置,其特征在于,所述上位机或主控板采用Linux操作系统,对Linux内核源码进行修改。
5.一种用于数控总线通讯板的数据读写方法,其特征在于,采用Linux内核模块的编程模型,包括以下步骤:
模块初始化,完成GPMC配置操作;
中断服务例程,完成GPMC读写操作;
模块清除处理,完成GPMC释放操作;
编译成可动态加载的内核模块;
对模块进行加载和卸载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103988495A CN103136140A (zh) | 2011-12-05 | 2011-12-05 | 一种用于数控总线通讯板的数据读写装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103988495A CN103136140A (zh) | 2011-12-05 | 2011-12-05 | 一种用于数控总线通讯板的数据读写装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103136140A true CN103136140A (zh) | 2013-06-05 |
Family
ID=48495984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103988495A Pending CN103136140A (zh) | 2011-12-05 | 2011-12-05 | 一种用于数控总线通讯板的数据读写装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136140A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761207A (zh) * | 2013-06-25 | 2014-04-30 | 严俊 | 一种3d虚拟设备测控系统 |
CN104656563A (zh) * | 2013-11-18 | 2015-05-27 | 沈阳高精数控技术有限公司 | 一种脉冲型数控装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200947617Y (zh) * | 2006-08-18 | 2007-09-12 | 上海工业自动化仪表研究所 | 一种Zigbee短程无线网关 |
CN101729339A (zh) * | 2008-10-31 | 2010-06-09 | 沈阳中科博微自动化技术有限公司 | 现场总线通信卡 |
CN101963811A (zh) * | 2010-10-29 | 2011-02-02 | 深圳市大族激光科技股份有限公司 | 通讯控制器及基于该通讯控制器的工业控制系统 |
CN201867627U (zh) * | 2010-10-12 | 2011-06-15 | 中国矿业大学 | 基于can总线的数控机床故障信号检测系统 |
-
2011
- 2011-12-05 CN CN2011103988495A patent/CN103136140A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200947617Y (zh) * | 2006-08-18 | 2007-09-12 | 上海工业自动化仪表研究所 | 一种Zigbee短程无线网关 |
CN101729339A (zh) * | 2008-10-31 | 2010-06-09 | 沈阳中科博微自动化技术有限公司 | 现场总线通信卡 |
CN201867627U (zh) * | 2010-10-12 | 2011-06-15 | 中国矿业大学 | 基于can总线的数控机床故障信号检测系统 |
CN101963811A (zh) * | 2010-10-29 | 2011-02-02 | 深圳市大族激光科技股份有限公司 | 通讯控制器及基于该通讯控制器的工业控制系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761207A (zh) * | 2013-06-25 | 2014-04-30 | 严俊 | 一种3d虚拟设备测控系统 |
CN103761207B (zh) * | 2013-06-25 | 2016-08-10 | 严俊 | 一种3d虚拟设备测控系统 |
CN104656563A (zh) * | 2013-11-18 | 2015-05-27 | 沈阳高精数控技术有限公司 | 一种脉冲型数控装置及方法 |
CN104656563B (zh) * | 2013-11-18 | 2017-06-09 | 沈阳高精数控智能技术股份有限公司 | 一种脉冲型数控装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102141971B (zh) | 具有大容量存储功能的1553b硬件定时通讯模块 | |
CN111913822B (zh) | 一种基于amp架构的核间通信方式 | |
CN105404538A (zh) | 一种fpga的加载和升级目标代码的装置及方法 | |
KR20170141205A (ko) | Dsp 엔진 및 향상된 컨텍스트 스위치 기능부를 구비한 중앙 처리 유닛 | |
US20110314323A1 (en) | Semiconductor device and data processor | |
CN103870429A (zh) | 基于嵌入式gpu的高速信号处理板 | |
US20160306634A1 (en) | Electronic device | |
TWI515553B (zh) | 包括可組配最大處理器電流之用於能源效率及節能之方法、裝置及系統 | |
WO2017112529A1 (en) | Configuration arbiter for multiple controllers sharing a link interface | |
CN109992555A (zh) | 一种供多路服务器共用的管理板卡 | |
CN105335548A (zh) | 一种用于ice的mcu仿真方法 | |
CN111190855A (zh) | 一种fpga多重远程配置系统及方法 | |
CN102622257A (zh) | 电表在线自更新方法及其装置 | |
CN103246628A (zh) | Smi接口管理方法及可编程逻辑器件 | |
CN112291027A (zh) | 时钟选择方法、装置、设备及计算机可读存储介质 | |
CN110399328B (zh) | 一种板载图形处理器控制方法与装置 | |
CN102043754A (zh) | 一种提高星载dsp加载引导可靠性的方法 | |
CN102880235A (zh) | 基于龙芯2f cpu的单板计算机及其复位管理和使用方法 | |
CN105892350B (zh) | 在微控制器单元和主处理器之间通信的电子设备及其方法 | |
CN114281751B (zh) | 芯片系统 | |
CN113656076A (zh) | 一种基于硬件复用通道的bios启动方法及装置 | |
CN204423297U (zh) | 一种用以实现系统控制和电源管理的片上系统 | |
CN103136140A (zh) | 一种用于数控总线通讯板的数据读写装置和方法 | |
CN105824650B (zh) | 计算机系统、可适性休眠控制模块及其控制方法 | |
CN111124991A (zh) | 一种基于处理单元互联的可重构微处理器系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2 Applicant after: SHENYANG GAOJING NUMERICAL CONTROL INTELLIGENT TECHNOLOGY CO., LTD. Address before: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 16 110171 Applicant before: Shenyang High-End Computer Numerical Control Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130605 |