用户层行规通过定义命令与应答的数据结构,确保装置间的互操作,支持面向应用的实现根据开放式数控系统中装置的参数与行为特性,用户层行规包括管理、传感器控制、驱动控制与i/o控制等部分用户层行规接口程序主要负责通信数据的接收与发送具体过程如图4所示
接口程序与数控系统软件共享一个命令数据结构数组和一个应答数据结构数组命令数据结构数组中存储的元素为数控系统事数据结构先封装好的需要发送的命令数据结构,应答数据结构数组中存储的元素为行规接口程序接收到的应答数据结构
图6行规接口程序数据流向程序间的数据流向
命令数据结构规划如下,具体实现可以根据实际应用进行调整
基于soc的ncsf总线系统将ncsf协议栈分两个部分实现,即:用户层行规以用户层行规接口的形式实现在nc主机上,应用层及数据链路层实现在fpga内嵌microblaze处理器上,相应的程序设计也分两个部分进行
3.1用户层行规接口程序设计
如图6所示其中命令函数是用户层行规为数控系统软件提供的应用接口,数控系统软件通过调用命令函数封装命令数据结构并写数据到命令数据结构数组每个函数根据自己的功能将数据写人数组不同的位置为什么要学习数据结构,具体内存地址为基地址加偏移地址行规接口程序主要工作包括:读取命令数据结构数组中的数据并映射到pic的输出缓存中;读取pci输入缓存中的数据并映射到应答数据结构数组中由于ncsf总线支持集总帧(一个大的数据帧,里面包含所有从站的数据,适用于主从环形总线拓扑结构)和非集总帧报文,因此一次函数执行将读写整个数组,即一个通讯周期内所需要发送的周期性数据和非周期性数据;所有的安全性检查、出错重传、时钟同步、pci内存与从站地址的映射等控制功能完全由fpga部分实现
图4用户层行规层次结构图
协议栈的应用层和数据链路层实现在fpga内嵌的microblaze处理器中,配合fpga内部硬件逻辑资源编程实现高层协议和为什么要学习数据结构底层逻辑的解析处理应用层为用户层行规提供传输服务及安全支持,并实现用户层行规与数据链路层之间数据交互首先应用层程序读取pci中的命令数据结构并将其封装成apdu(应用协议数据单元)转发到数据链路层,然后数据链路层程序读取来自应用层的数据并解析封装成数据链路帧转发到phy控制器,最后数据帧由phy以比特流的形式发送到ncsf总线上:当以太网控制器接收到来自ncsf总线的数据时,执行逆解析操作,最终由应用层程序将应答数据结构的发送到pci上,至此完成一次完整的数据交互过程具体过程如图5所示
命令数据结构数组和应答数据结构数组的大小应根据实际应用中从站的数量进行动态配置,保证发往和来自每个从站的数据都有各自数据结构学习内容的缓冲空间
用户层行规接口程序以外部时钟中断处理程序的形式调用执行,即当外部时钟计数器到期发送时钟脉冲信号至nc主机时,主机调用用户层行规接口程序响应中断
图5 fpga上总线系统层次结构3 基于soc的ncsf总线系统程序设计
2.2 fpga上总线系统的设计
2.1 nc主机用户层行规接口的设计
北京可以治疗白癜风的医院能治愈白癜风的医院