CN101158717B - 伪卫星基带信号生成器的嵌入式处理器的控制方法 - Google Patents
伪卫星基带信号生成器的嵌入式处理器的控制方法 Download PDFInfo
- Publication number
- CN101158717B CN101158717B CN2007101705264A CN200710170526A CN101158717B CN 101158717 B CN101158717 B CN 101158717B CN 2007101705264 A CN2007101705264 A CN 2007101705264A CN 200710170526 A CN200710170526 A CN 200710170526A CN 101158717 B CN101158717 B CN 101158717B
- Authority
- CN
- China
- Prior art keywords
- module
- pseudolite
- pseudo satellite
- texts
- command
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Position Fixing By Use Of Radio Waves (AREA)
- Radio Relay Systems (AREA)
Abstract
一种涉及电子技术领域的信号发送设备,尤指一种利用现代科技手段,用于卫星信号模拟和实现伪卫星定位等应用的伪卫星基带信号生成器的嵌入式处理器的控制方法。该装置包括:现场可编程门阵列FPGA和中频信号模块等,软核和四路伪卫星外设一起组合为基带信号生成器,该方法通过设计的伪卫星基带信号控制软件,完成响应在PC上的控制命令等;主要解决如何设计伪卫星基带信号控制软件,完成嵌入式处理器的控制方法等有关技术问题。本发明的积极效果是:该方法能根据与定义的通讯协议从数据帧中解析出命令参数给与执行,提高了可靠性和可控性,具有低成本、控制灵活等优点。
Description
技术领域
本发明涉及电子技术领域的信号发送设备,尤旨一种利用现代科技手段,用于产生和控制类似于全球卫星定位系统GPS(Global Positiong System)卫星信号格式的伪卫星信号的中频信号,用于卫星信号模拟和实现伪卫星定位等多项应用的装置及其嵌入式处理器的控制方法。
背景技术
伪卫星顾名思义是一个卫星模拟装置,它的主要功能是模拟卫星,在这里是模拟GPS卫星,发射和GPS信号格式一模一样的卫星导航信号。伪卫星的出现并不算晚,在美国GPS系统尚未建设完成前,就使用伪卫星进行GPS的模拟试验。近年来,世界各国有不少针对伪卫星的研究,韩国和芬兰都有较成熟的伪卫星组网系统。我国也有不少对伪卫星的研究,大多数是使用1~2个伪卫星实现卫星导航系统的区域增强。
而国内伪卫星本体的实现并没有成熟的产品,国内外使用伪卫星一般依赖进口国外一二家公司的产品。
发明内容
为了克服上述不足之处,本发明的主要目的旨在提供一种通过基带信号生成和控制逻辑电路机构,完成伪卫星基带信号的实现和控制机构,既能方便操作者在计算机上灵活控制伪卫星信号的产生,又能运行各项参数的装置;该方法通过所述装置设计的伪卫星基带信号控制软件,根据与定义的通讯协议从数据帧中解析出命令参数给与执行,完成响应在PC上的控制命令,根据控制命令,调节伪卫星基带信号各个模块的伪卫星基带信号生成器的嵌入式处理器的控制方法。
本发明要解决的技术问题是:主要解决如何将整个系统核心集成在一块现场可编程门阵列FPGA(Field Programmable GateArray)芯片中问题;解决如何实现特定逻辑功能的数字电路来实现CA码生成、导航电文输出以及直接数字频率合成器DDS(DirectDigital Synthesis)的载波输出问题;解决如何将解码上位机的命令并且根据该命令实现复杂控制功能及其如何完成嵌入式处理器软核程序等有关技术问题。
本发明解决其技术问题所采用的技术方案是:该装置由可编程门阵列、总线、接口、天线、逻辑电路、反相器、寄存器、存储器、时钟管理器、延时控制器、数字频率合成器、中断记录器及D/A转换器等部件组成。
一种伪卫星基带信号生成器的嵌入式处理器的控制方法,该方法是通过串行接口和串口控制模块,接收来自上位机的串口控制命令,解析命令和提取数据,并根据命令控制和改变伪卫星信号的参数和生成,启动和重启;通过伪卫星核心逻辑电路,可定时向四路伪卫星基带模块发送导航电文,并根据导航电文校验规则,实时修改导航电文;通过运行现场可编程门阵列FPGA模块,完成伪卫星基带信号的生成;所述上位机在可视化软件中输入要求各项指令通过RS232串口发出,伪卫星基带信号控制软件能立刻根据定义的通讯协议从数据帧中解析出命令参数给予执行;该方法的嵌入式软核程序在嵌入式系统的CPU中运行,程序在完成初始化之后即进入主循环,程序有两个中断源,中断信号0代表串口中断,在串口模块收到字节数据后产生中断;程序响应中断信号将收到的字节数据读取至缓冲区,程序在主循环中检查串口缓冲区,如果发现一串命令接收完毕则分析命令并获取命令参数,继而执行;该嵌入式处理器的具体工作步骤是:
步骤1.启动
步骤2.初始化
执行完启动后,则进入初始化模块;
步骤3.进入主循环
程序在完成初始化之后即进入主循环模块,程序设有两个中断源,串口收到数据模块产生的中断信号0传递到主循环模块的输入端,主循环模块产生的中断信号0响应传递到解析命令模块;伪卫星外设已发送30位电文模块产生的中断信号1传递到主循环模块的输入端,主循环模块产生的中断信号1响应传递到设置已发送完30位电文的标志模块;
步骤4.检查串口缓冲区
执行完初始化后,则进入检查串口缓冲区模块;
步骤5.判断是否有新命令
执行完检查串口缓冲区后,则进入是否有新命令模块,如果有新命令,则进入分析命令模块,执行完分析命令并获取命令参数后,则进入执行模块;如果无新命令,则进入是否发完30位电文模块;
步骤6.判断是否发完30位电文
若无新命令,则进入是否发完30位电文模块,如果是发完30位电文,则进入是否发完一帧模块;如果没有发完30位电文,则输出信号反馈进入主循环中的检查串口缓冲区模块的输入端口;
步骤7.判断是否发完一帧
若是发完30位电文,则进入是否发完一帧模块,如果是发完一帧,则进入修改存储区已发完的一帧中的TOW模块;
执行完修改存储区已发完的一帧中的TOW后,则进入校验模块;执行完校验后,则进入从存储区取出下30位电文发给伪卫星外设模块;如果没有发完一帧,则进入从存储区取出下30位电文发给伪卫星外设模块;
步骤8.从存储区取出下30位电文发给伪卫星外设
当没有发完一帧和执行完校验后,均进入从存储区取出下30位电文发给伪卫星外设模块,执行完从存储区取出下30位电文发给伪卫星外设,则输出信号反馈进入主循环中的检查串口缓冲区模块的输入端口。
本发明的有益效果是:该方法能根据与定义的通讯协议从数据帧中解析出命令参数给与执行,提高了可靠性和可控性,非常适合伪卫星室内定位研究以及作为卫星导航技术研究的信号源;具有方便灵活、控制简捷有效等优点。
附图说明
下面结合附图和实施例对本发明进一步说明。
附图1为本发明整体结构方框示意图;
附图2为本发明现场可编程门阵列核心的主要结构示意图;
附图3为本发明伪卫星外设模块结构示意图;
附图4为本发明时钟及伪卫星管理模块结构示意图;
附图5为本发明嵌入式处理器程序的流程示意图;
附图中标号说明:
1-现场可编程门阵列FPGA; 14-时钟及伪卫星管理模块;
2-串行接口; 141-复位;
3-边界扫描接口; 142-启动;
4-存储器芯片; 143-伪随机码时钟;
5-75M晶振时钟输入; 144-导航电文时钟;
6-20.46M高稳时钟输入; 145-数字频率合成器时钟;
7-数模转换; 146-中断请求信号;
71-数模转换A; 1401-启动和命令寄存器;
72-数模转换B; 1402-伪卫星外设A延时控制寄存器;
73-数模转换C; 1403-伪卫星外设A延时量寄存器;
74-数模转换D; 1404-中断记录器;
8-中频信号; 1405-载波频率延时控制器;
81-中频信号A; 1406-80分频;
82-中频信号B; 1407-20460分频;
83-中频信号C 15-数字时钟管理器A;
84-中频信号D; 16-数字时钟管理器B;
11-microblaze嵌入式处理器软核;17-中断控制器;
12-片上外设总线; 18-串口控制模块;
13-伪卫星外设; 19-本地存储器总线;
131-伪卫星外设A; 20-内存控制器;
132-伪卫星外设B; 30-伪卫星核心逻辑电路;
133-伪卫星外设C; 140-伪卫星外设时钟控制逻辑;
134-伪卫星外设D; 49-主循环;
1301-CA码选择生成器; 50-启动;
1302-导航电文移位器; 51-初始化;
1303-数字频率合成器载波生成器;52-检查串口缓冲区;
1304-模二和; 53-是否有新命令;
1305-反相器; 54-是否发完30位电文;
1306-二进制相移键控调制; 55-是否发完一帧;
1307-CA码选择寄存器;
1308-导航电文寄存器;
56-从存储区取出下30位电文发给伪卫星外设;
57-修改存储区已发完的一帧中的TOW;
61-串口收到数据; 58-校验;
62-解析命令; 59-分析命令;
63-伪卫星外设已发送30位电文; 60-执行;
64-设置已发送完30位电文的标志;
具体实施方式
请参阅附图1、2、3、4所示,本发明由可编程门阵列、总线、接口、天线、逻辑电路、反相器、寄存器、存储器、时钟管理器、延时控制器、数字频率合成器、中断记录器及D/A转换器等部件组成,该装置至少包括:
现场可编程门阵列FPGA1、串行接口2、边界扫描接口3、存储器芯片4、75M晶振时钟输入5、20.46M高稳时钟输入6、数模转换7和中频信号8模块,并集成四路独立的伪卫星信号通道,逻辑功能的数字电路和嵌入式软核组成一个嵌入式片上系统,整个系统核心集成在一块现场可编程门阵列FPGA1芯片中,软核和四路伪卫星外设一起组合为一基带信号生成器;其中:
一现场可编程门阵列FPGA1模块的输入端分别与75M晶振时钟输入5和20.46M高稳时钟输入6模块的输出端相连接,现场可编程门阵列FPGA1模块的输出端分别与数模转换7模块中的数模转换A71、数模转换B72、数模转换C73和数模转换D74的输入端相互并行连接;
数模转换A71、数模转换B72、数模转换C73和数模转换D74的输出端分别与中频信号8模块中的中频信号A81、中频信号B82、中频信号C83中频信号D84的输入端相互并行连接;
一串行接口2通过芯片的接收、发送端口与现场可编程门阵列FPGA1模块的对应端口相连接;
一边界扫描接口3通过接口与现场可编程门阵列FPGA1模块的相应端口相连接;
一存储器芯片4的输入输出端通过总线分别与现场可编程门阵列FPGA1模块的输出输入端相互连接;
一现场可编程门阵列FPGA1模块主要由microblaze嵌入式处理器软核11、伪卫星核心逻辑电路30、数字时钟管理器A15、数字时钟管理器B 16、中断控制器17、串口控制模块18和内存控制器20组成,该现场可编程门阵列FPGA1内部资源的数字时钟管理器DCM的时钟信号直接传递到microblaze嵌入式处理器软核11模块的相应端口;伪卫星核心逻辑电路30的逻辑信号分别传递到microblaze嵌入式处理器软核11模块的各相应端口;
一数字时钟管理器A15的输出信号传递到microblaze嵌入式处理器软核11的输入端,75M晶振时钟输入5信号传递到数字时钟管理器A15的输入端;
一数字时钟管理器B16的输出信号传递到伪卫星核心逻辑电路30中的时钟及伪卫星管理模块14的输入端,20.46M高稳时钟输入6信号传递到数字时钟管理器B16的输入端;
一中断控制器17输出的中断信号传递到microblaze嵌入式处理器软核11的输入端,串口控制模块18的输出中断信号0传递到中断控制器17的输入端,伪卫星核心逻辑电路30中的时钟及伪卫星管理模块14的输出中断信号1传递到中断控制器17的输入端;
一串口控制模块18的输入输出端与串行接口2模块的相应端口相连接,接收来自上位机的控制命令,接收到命令后会发出中断信号0,串口控制模块18的输出端传递发送信号,串口控制模块18的输出输入端通过片上外设总线12分别与microblaze嵌入式处理器软核11模块的相应端口相连接;
一内存控制器20的输入输出端通过本地存储器总线19与microblaze嵌入式处理器软核11的相应端口相连接。
所述的伪卫星基带信号生成器的伪卫星核心逻辑电路30中设有伪卫星外设13和时钟及伪卫星管理模块14,该伪卫星核心逻辑电路30的输入输出端通过片上外设总线12分别与microblaze嵌入式处理器软核11模块的相应端口相连接;伪卫星核心逻辑电路30的输出端通过片上外设总线12与数模转换芯片的输入端相互连接,其中:
一伪卫星外设13分别由四路独立的伪卫星外设A131、伪卫星外设B132、伪卫星外设C133和伪卫星外设D134组成,该伪卫星外设13的输出端通过片上外设总线12与数模转换芯片的输入端相互连接;
一时钟及伪卫星管理模块14输出端的伪随机码时钟143、导航电文时钟144和数字频率合成器时钟145时钟信号分别传递到四路独立的伪卫星外设A131、伪卫星外设B132、伪卫星外设C133和伪卫星外设D134的各输入端;时钟及伪卫星管理模块14输出端的复位141和启动142两个控制信号分别传递到四路独立伪卫星外设13的公用信号端上。
所述的伪卫星基带信号生成器的伪卫星外设13设有不同基地址形成的四路独立伪卫星结构,每一路独立伪卫星结构的伪卫星外设13至少包括:CA码选择生成器1301、导航电文移位器1302、数字频率合成器载波生成器1303、CA码选择寄存器1307和导航电文寄存器1308,其中:
CA码选择生成器1301的输入端分别与CA码选择寄存器1307和伪随机码时钟143信号的输出端相互连接;导航电文移位器1302的输入端分别与导航电文寄存器1308和导航电文时钟144信号的输出端相互连接;数字频率合成器载波生成器1303的输入端与数字频率合成器时钟145信号的输出端相互连接;CA码选择寄存器1307和导航电文寄存器1308对应为不同的偏移地址;
CA码选择生成器1301和数字频率合成器载波生成器1303之间的公用信号连接线与启动142控制信号端相互连接;CA码选择生成器1301、导航电文移位器1302和数字频率合成器载波生成器1303的公用信号连接线与复位141控制信号端相互连接;
CA码选择生成器1301和导航电文移位器1302的输出端经由模二和1304运算模块连接后,再与二进制相移键控调制1306模块的输入端相连接;数字频率合成器载波生成器1303的输出端与二进制相移键控调制1306模块的输入端相连接;二进制相移键控调制1306模块的输出时钟信号一路为数模转换时钟0,另一路经由反相器1305输出,为数模转换时钟1,两路时钟信号和二进制相移键控调制1306模块输出的12位数模转换数据分别输出至数模转换芯片的相应输入端;
一导航电文移位器1302输出的中断请求信号146传递到时钟及伪卫星管理模块14的输入端。
所述的伪卫星基带信号生成器的时钟及伪卫星管理模块14设有四个伪卫星外设时钟控制逻辑140模块,分别对应四个伪卫星外设13,每个伪卫星外设时钟控制逻辑140设有一组延时控制寄存器和延时量寄存器、载波频率延时控制器和各分频器;所述时钟及伪卫星管理模块14至少包括三路信号:
第一路设有启动和命令寄存器1401模块,启动和命令寄存器1401由microblaze嵌入式处理器软核11通过片上外设总线12输入读写信号,启动和命令寄存器1401的输出信号据写入的命令字不同,分别传送出启动142和复位141的信号,该启动142和复位141的信号分别连接到四个伪卫星外设13的公用信号连接线;
第二路设有伪卫星外设时钟控制逻辑140模块;
第三路设有中断记录器1404模块,该模块分别收集四个伪卫星的中断输入信号,中断请求信号146传递到中断记录器1404的输入端,收集齐之后,该中断记录器1404的输出信号为中断信号1。
所述的伪卫星基带信号生成器的每个伪卫星外设时钟控制逻辑140模块至少设有伪卫星外设A延时控制寄存器1402、伪卫星外设A延时量寄存器1403、载波频率延时控制器1405、80分频1406和20460分频1407模块,其中:
一组伪卫星外设A延时控制寄存器1402和伪卫星外设A延时量寄存器1403的输出信号分别传递到载波频率延时控制器1405的输入端,81.84M高稳时钟的输入信号传递到载波频率延时控制器1405的输入端;载波频率延时控制器1405的输出信号分别通过80分频1406和20460分频1407模块的计数器分频分路传递出伪卫星外设13所需的数字频率合成器时钟145、导航电文时钟144和伪随机码时钟143三种时钟信号。
请参阅附图5所示,一种伪卫星基带信号生成器的嵌入式处理器的控制方法,该方法是通过串行接口2和串口控制模块18,接收来自上位机的串口控制命令,解析命令和提取数据,并根据命令控制和改变伪卫星信号的参数和生成,启动和重启;通过伪卫星核心逻辑电路30,可定时向四路伪卫星基带模块发送导航电文,并根据导航电文校验规则,实时修改导航电文;通过运行现场可编程门阵列FPGA1模块,完成伪卫星基带信号的生成;所述上位机在可视化软件中输入要求各项指令通过RS232串口发出,伪卫星基带信号控制软件能立刻根据与定义的通讯协议从数据帧中解析出命令参数给与执行;该方法的嵌入式软核程序在嵌入式系统的CPU中运行,程序在完成初始化之后即进入主循环49,程序有两个中断源,中断信号0代表串口中断,在串口模块收到字节数据后产生中断;程序响应中断信号将收到的字节数据读取至缓冲区,程序在主循环49中检查串口缓冲区,如果发现一串命令接收完毕则分析命令并获取命令参数,继而执行;该嵌入式处理器的具体工作步骤是:
步骤1.启动50
步骤2.初始化51
执行完启动50模块后,则进入初始化51模块;
步骤3.进入主循环49
程序在完成初始化之后即进入主循环49模块,程序设有两个中断源,串口收到数据61模块产生的中断信号0传递到主循环49模块的输入端,主循环49模块产生的中断信号0响应传递到解析命令62模块;伪卫星外设已发送30位电文63模块产生的中断信号1传递到主循环49模块的输入端,主循环49模块产生的中断信号1响应传递到设置已发送完30位电文的标志64模块;
步骤4.检查串口缓冲区52
执行完初始化51模块后,则进入检查串口缓冲区52模块;
步骤5.判断是否有新命令53
执行完检查串口缓冲区52模块后,则进入判断是否有新命令53模块,如果有新命令,则进入分析命令59模块,执行完分析命令并获取命令参数后,则进入执行60模块;如果无新命令,则进入是否发完30位电文54模块;
步骤6.判断是否发完30位电文54
若无新命令,则进入判断是否发完30位电文54模块,如果是发完30位电文,则进入是否发完一帧55模块;如果没有发完30位电文,则输出信号反馈进入主循环49中的检查串口缓冲区52模块的输入端口;
步骤7.判断是否发完一帧55
若是发完30位电文,则进入判断是否发完一帧55模块,如果是发完一帧,则进入修改存储区已发完的一帧中的TOW 57;执行完修改存储区已发完的一帧中的TOW 57模块后,则进入校验58模块;执行完校验58模块后,则进入从存储区取出下30位电文发给伪卫星外设56模块;如果没有发完一帧,则进入从存储区取出下30位电文发给伪卫星外设56模块;
步骤8.从存储区取出下30位电文发给伪卫星外设56
当没有发完一帧和执行完校验58模块后,均进入从存储区取出下30位电文发给伪卫星外设56模块,执行完从存储区取出下30位电文发给伪卫星外设56模块,则输出信号反馈进入主循环49中的检查串口缓冲区52模块的输入端口。
本发明的工作原理和系统特点如下:
本发明主要完成了伪卫星基带信号的实现和控制机构,内置CA码发生器、导航电文移位器、DDS载波生成器等基带信号生成和控制逻辑电路,并有嵌入式CPU和RS232串行接口,方便操作者在计算机上灵活控制伪卫星信号的产生和运行以及各项参数。
本发明实现了一种低成本、较高精度、控制灵活、使用方便的伪卫星基带信号生成器。其输出信号除了载波为10.23M中频外,格式、内容和GPS信号一致。将输出信号上变频至1575.42M的GPS载波频率,即可通过天线发射,和GPS信号完全一致。它提供了导航电文的注入、CA码选择、信号时延控制等功能,并且集成了四路独立的伪卫星信号通道,方便伪卫星组网或者单体的研究应用。整个系统核心集成在一块FPGA芯片中,节省了伪卫星硬件的开销,研制时间和费用,提高了可靠性和可控性,非常适合伪卫星室内定位研究以及作为卫星导航技术研究的信号源。
本发明伪卫星基带信号生成器的核心是在一块Xilinx公司的FPGA芯片中实现的嵌入式系统再加上一些必要的外围电路构成伪卫星的基带信号生成器。一般FPGA芯片是用来实现特定逻辑功能的数字电路,复杂的控制功能则由MCU来完成。而伪卫星基带信号生成器既需要实现特定逻辑功能的数字电路来实现CA码生成、导航电文输出以及DDS载波输出,又需要解码上位机的命令并且根据该命令实现复杂控制。因此通常的电路设计需要FPGA+MCU来实现。而XILINX的spartanIII以上系列的FPGA芯片都支持嵌入式软核microblaze,因此可以将特定逻辑功能的数字电路和嵌入式软核组成一个嵌入式片上系统SOC(System on a Chip)在一块FPGA芯片中实现。
这样做的好处是:首先节省了伪卫星硬件的开销,去掉了MCU芯片以及其复杂的外围电路,并将多颗硬件结构相同的伪卫星在一块电路上实现,大大节省了研制时间和费用,降低了不可靠性。此外,由于伪卫星在系统中是需要受主控站控制的,因此伪卫星需要有硬件通讯接口和通讯线路,多颗伪卫星如果分别实现,那么在通讯线路建设中还需要考虑多址通讯方案,这样势必增加通讯系统的硬件开销及难度。另外,伪卫星系统的同步是一个重要的问题,将多颗伪卫星信号的基带部分做在一起,更方便控制。最后,由于系统是在一片FPGA芯片内部实现,要修改系统或增减功能时方便灵活,不用重新设计电路制板。
请参阅附图1、2所示,本发明总体结构为:
从伪卫星基带信号生成器的主要结构可以看出硬件的电路结构较普通,外围器件都是一些常用器件,普通的FPGA(现场可编程门阵列)开发板都能满足要求,这使得伪卫星基带信号生成器更易于实现。伪卫星基带信号生成器的核心部分都在FPGA(现场可编程门阵列)芯片内部实现,主要结构如图2所示,是一个以microblaze软核为控制核心的嵌入式片上系统。
利用Xilinx的嵌入式开发套件EDK(Embedded DevelopmentKit)软件可以方便的自定义microblaze的片上系统,图2中的内存控制器、串口控制模块以及中断控制器都是现成的IP核,可以直接添加。数字时钟管理器又叫DCM是FPGA的内部资源,而时钟及伪卫星管理模块和4个伪卫星外设则是专门设计的逻辑电路,作为外设和microblaze通过片上外设总线OPB(On-chip PeripheralBus)总线连接。
内存控制器用于microblaze读取片外内存,作为指令和数据存储器;它和micro blaze用本地存储器总线LMB(Local Memory Bus)连接。串口控制模块用于接收来自上位机的控制命令。当接收到命令后会发出中断信号0。DCM(数字时钟管理器)是FPGA时钟处理资源,本系统使用了两个DCM(数字时钟管理器),一个用来为microblaze提供处理器时钟,一个接收20.46M的高稳时钟输入并将其4倍频提供给时钟及伪卫星管理模块用来为伪卫星外设产生伪随机码、导航电文以及数字频率合成器的时钟。
伪卫星外设被作成模块化的外设,可以灵活的增减,本系统集成了4路伪卫星。每个伪卫星都通过OPB(片上外设总线)总线和microblaze相连,用来传递导航电文和设置CA码选择。在运行过程中的控制主要由时钟及伪卫星管理模块来完成,时钟及伪卫星管理模块分别为四个伪卫星外设提供三种时钟信号。而复位和启动两个控制信号则是四个伪卫星外设公用的,这样能保证,四颗伪卫星的同步启动。每颗伪卫星在发送完30位的导航电文后会产生一个中断请求,时钟及伪卫星管理模块收集完四颗伪卫星的中断请求后,会产生一个中断信号1。
中断控制器根据优先级管理中断信号0和中断信号1保证每个中断信号都能得到及时处理。
伪卫星核心逻辑电路设计30
伪卫星核心逻辑电路包括图2中所示的“伪卫星外设”模块以及“时钟及伪卫星管理”模块。
“伪卫星外设”模块以及“时钟及伪卫星管理”模块对于microblaze来说,都是OPB(片上外设总线)外设。在完成实现其特定功能的自定义逻辑电路后,EDK软件可以方便的将其封装为支持OPB(片上外设总线)总线的外设。因此OPB(片上外设总线)器件都包含两部分,一部分是OPB(片上外设总线)总线接口,一部分是用户自定义的逻辑电路。在这里只是详细描述自定义逻辑电路。
“伪卫星外设”模块结构如图3所示。主要由CA码选择生成器,导航电文移位器和数字频率合成器载波生成器等组成。
CA码选择生成器根据CA码选择寄存器的内容决定输出的CA码类型,可以在1-32中选择,使用的1.023M时钟。导航电文移位器以50Hz的速率将电文一位一位串行输出,每移出30位(对应GPS电文的一个字)后,发送中断请求信号,并从导航电文寄存器中读取新的30位电文。DDS载波生成器是利用查找表的方式产生12位精度的10.23M的正弦波,输入时钟为81.84M。
上述三个模块除了各自的时钟外,共享复位和启动两根控制输入线。此外CA码选择生成器的CA码输出和导航电文移位器的输出进行模二和运算,其结果再和载波进行BPSK调制。调制的结果形成12位的数据输出以及两个81.84M时钟(两个时钟反相)输出,全部提供给FPGA芯片外的数模转换芯片。
整个伪卫星外设做成模块,在系统中添加了四个这样的伪卫星外设,以基地址的不同加以区分,而每个伪卫星外设的CA码选择寄存器和导航电文寄存器对应不同的偏移地址由OPB总线读写。
“时钟及伪卫星管理”模块是负责为伪卫星外设提供所需的时钟信号,并完成中断管理、启动和复位、时延管理等控制行为。
启动和命令寄存器由microblaze通过OPB总线读写,根据写入的命令字不同,给出启动和复位的信号,这两个信号连接到四个伪卫星外设。
图4中伪卫星时钟控制逻辑140在本模块中有四个分别对应四个“伪卫星外设”。其输入为81.84M高稳时钟,通过计数器分频给出伪卫星外设需要的三种时钟信号。每个伪卫星时钟控制逻辑都有一组延时控制寄存器和延时量寄存器,前者用来写入和清除延时命令字,后者用来写入延时的量值。这两个寄存器都可以通过OPB总线读写。
中断记录器1404收集四个伪卫星的中断输入信号,收集齐之后,产生中断信号1。
请参阅附图5所示,为嵌入式处理器软核程序:
嵌入式软核程序其实是一个伪卫星基带信号控制软件。在嵌入式系统的CPU中运行,用于控制和改变伪卫星信号的参数。
伪卫星信号是和GPS信号的结构、调制方式一样的信号。伪卫星信号基带部分的产生在一块FPGA的数字芯片中完成,包括CA码的模块、导航电文模块等。由于在实际使用中需要对伪卫星信号的各项参数灵活调节,以适应使用的要求,因此需要一个控制软件来完成响应在PC上的控制命令,根据控制命令,调节伪卫星基带信号的各个模块。
嵌入式处理器程序就是根据这个目的而编写。
主要功能:
1、接收来自上位机的串口命令并解析命令提取数据;
2、根据命令控制伪卫星信号的参数和生成,启动和重启等动作;
3、定时向四路伪卫星基带模块发送导航电文。并根据导航电文校验规则,实时修改导航电文。
上位机在可视化软件中输入要求各项指令通过RS232串口发出。伪卫星基带信号控制软件能立刻根据与定义的通讯协议从数据帧中解析出命令参数给与执行。
和上位机的串口的通讯协议
通讯的波特率使用固定,不可变。暂定为9600bit/s通讯底层协议设定:
起始位:1
数据位:8
校验位:0
结束位:2
上位机PC和伪卫星通讯过程如下:
1、上位机根据可视化软件界面中输入的参数、地址和命令,编制命令数据帧。通过串口发送,命令数据帧中包含了地址码信息。
2、伪卫星接收命令,根据格式获取,命令ID、地址码,判断地址码是否和自己的地址码相同,如果相同,则根据命令字中的命令ID和参数做出相应的动作。
上位机和伪卫星的高一级通讯协议设定如下:
对伪卫星的控制指令格式如下:
*PSEU(命令头),命令ID(一个字节),地址码(一个字节),命令参数长度(两个字节),命令参数,EOF(命令结束符)
“*PSEU”的ASCII码作为命令头,“EOF”的ASCII码作为命令结束符。命令字、参数等都由逗号分隔,命令参数长度不限,伪卫星以接收到结束符作为命令结束标志。
命令头、结束字符以及分隔符的ASCII码对应表如下:
字符 | ASCII(HEX) |
* | 2A |
P | 50 |
S | 53 |
E | 45 |
U | 55 |
, | 2C |
O | 4F |
F | 46 |
在上位机中,只需选择好命令,并且填写好命令参数,软件将自动编写命令字。伪卫星收到的主控命令后,根据格式获取其中的信息。
例如伪卫星收到的一条命令的数据如下(16进制):
2A 50 53 45 55 2C 03 2C 01 2C 00 02 2C 000A 2C 45 4F 46
其中2A 50 53 45 55 2C表示“*PSEU,”
03表示命令ID为8号,即设置PRN码命令(见命令字定义)
2C为逗号
01为地址码,即对伪卫星组网中的1号伪卫星进行设置
2C为逗号
0002为命令参数长度,表示长度为一个字节
2C为逗号
000A为命令参数,表示命令1号伪卫星发射信号的PRN码为第10号PRN码
2C 45 4F 46为逗号加命令结束字符:EOF
错误检测:
伪卫星接收到信号后,应该根据定义的格式获取信息,如果格式不符合,例如找不到逗号2C,或者命令参数的字节长度和命令字中表示命令参数长度的那个字节内容不符。都将无视该接收到的命令。
程序在完成初始化之后即进入主循环,程序有两个中断源。中断信号0代表串口中断,在串口模块收到字节数据后产生中断;程序响应中断信号将收到的字节数据读取至缓冲区,程序在主循环49中检查串口缓冲区,如果发现一串命令接收完毕则分析命令并获取命令参数,继而执行
伪卫星发射的导航电文是上位机通过串口命令注入的,处理器将这些导航电文存储在FPGA片外的存储器芯片中,每个伪卫星存储1500位电文。伪卫星外设每发送完30位电文后发送中断请求,处理器程序响应中断信号,将下30位电文发送给伪卫星外设。
这样伪卫星发射的导航电文是1500位的内容重复发送。由于GPS导航电文中每一帧(300位)都有一个TOW字,表示GPS时间。从第一帧到第五帧过程中,TOW表示的时间是线性增加的,表示时间的前进。如果将1500位重复发送,那么在使用普通的GPS接收机收取伪卫星信号时就会发现时间是不断重复的,没有线性增加;这很有可能导致接收机工作出错中断对伪卫星信号的跟踪。因此处理器运行的程序在发送完一帧电文后,还要修改在刚发送完的一帧中的TOW内容,以便下次发送时时间是线性增加的。在修改TOW内容时遵守GPS电文的校验规则。
主控站PC和本实用新型通过RS232口连接,需要提供一个输出20.46M的方波的时钟源,FPGA芯片输出专门控制DAC902数模转换芯片的控制信号和数据信号,DAC输出10.23M载波的伪卫星信号。可以通过串口软件向本实用新型发送控制命令,包括CA码的选择、导航电文、时延,信号启动、重启等。
Claims (1)
1.一种伪卫星基带信号生成器的嵌入式处理器的控制方法,其特征在于:该方法是通过串行接口(2)和串口控制模块(18),接收来自上位机的串口控制命令,解析命令和提取数据,并根据命令控制和改变伪卫星信号的参数和生成,启动和重启;通过伪卫星核心逻辑电路(30),可定时向四路伪卫星基带模块发送导航电文,并根据导航电文校验规则,实时修改导航电文;通过运行现场可编程门阵列FPGA(1)模块,完成伪卫星基带信号的生成;所述上位机在可视化软件中输入要求各项指令通过RS232串口发出,伪卫星基带信号控制软件能立刻根据定义的通讯协议从数据帧中解析出命令参数给予执行;该方法的嵌入式软核程序在嵌入式系统的CPU中运行,程序在完成初始化之后即进入主循环(49),程序有两个中断源,中断信号0代表串口中断,在串口模块收到字节数据后产生中断;程序响应中断信号将收到的字节数据读取至缓冲区,程序在主循环(49)中检查串口缓冲区,如果发现一串命令接收完毕则分析命令并获取命令参数,继而执行;该嵌入式处理器的具体工作步骤是:
步骤1.启动(50)
步骤2.初始化(51)
执行完启动(50)后,则进入初始化(51)模块;
步骤3.进入主循环(49)
程序在完成初始化之后即进入主循环(49)模块,程序设有两个中断源,串口收到数据(61)模块产生的中断信号0传递到主循环(49)模块的输入端,主循环(49)模块产生的中断信号0响应传递到解析命令(62)模块;伪卫星外设已发送30位电文(63)模块产生的中断信号1传递到主循环(49)模块的输入端,主循环(49)模块产生的中断信号1响应传递到设置已发送完30位电文的标志(64)模块;
步骤4.检查串口缓冲区(52)
执行完初始化(51)后,则进入检查串口缓冲区(52)模块;
步骤5.判断是否有新命令(53)
执行完检查串口缓冲区(52)后,则进入是否有新命令(53)模块,如果有新命令,则进入分析命令(59)模块,执行完分析命令并获取命令参数后,则进入执行(60)模块;如果无新命令,则进入是否发完30位电文(54)模块;
步骤6.判断是否发完30位电文(54)
若无新命令,则进入是否发完30位电文(54)模块,如果是发完30位电文,则进入是否发完一帧(55)模块;如果没有发完30位电文,则输出信号反馈进入主循环(49)中的检查串口缓冲区(52)模块的输入端口;
步骤7.判断是否发完一帧(55)
若是发完30位电文,则进入是否发完一帧(55)模块,如果是发完一帧,则进入修改存储区已发完的一帧中的TOW(57)模块;执行完修改存储区已发完的一帧中的TOW(57)后,则进入校验(58)模块;执行完校验(58)后,则进入从存储区取出下30位电文发给伪卫星外设(56)模块;如果没有发完一帧,则进入从存储区取出下30位电文发给伪卫星外设(56)模块;
步骤8.从存储区取出下30位电文发给伪卫星外设(56)
当没有发完一帧和执行完校验(58)后,均进入从存储区取出下30位电文发给伪卫星外设(56)模块,执行完从存储区取出下30位电文发给伪卫星外设(56),则输出信号反馈进入主循环(49)中的检查串口缓冲区(52)模块的输入端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101705264A CN101158717B (zh) | 2007-11-16 | 2007-11-16 | 伪卫星基带信号生成器的嵌入式处理器的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101705264A CN101158717B (zh) | 2007-11-16 | 2007-11-16 | 伪卫星基带信号生成器的嵌入式处理器的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101158717A CN101158717A (zh) | 2008-04-09 |
CN101158717B true CN101158717B (zh) | 2011-01-26 |
Family
ID=39306871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101705264A Expired - Fee Related CN101158717B (zh) | 2007-11-16 | 2007-11-16 | 伪卫星基带信号生成器的嵌入式处理器的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101158717B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526613B (zh) * | 2009-03-11 | 2012-01-25 | 哈尔滨工业大学 | 基于星间信息交换的星间相对距离测量装置 |
CN102882623B (zh) * | 2012-07-26 | 2014-11-19 | 哈尔滨工业大学 | 基于fpga的可配置的时钟频率合成装置 |
CN106199666B (zh) * | 2016-09-20 | 2018-11-27 | 北京航空航天大学 | 一种基于终端转发gnss信号的定位跟踪方法 |
CN110071755A (zh) * | 2019-04-26 | 2019-07-30 | 中国电子科技集团公司第五十四研究所 | 一种卫星移动通信射频接口控制器及射频信号处理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983160A (en) * | 1997-04-21 | 1999-11-09 | Raytheon Company | Increase jamming immunity by optimizing processing gain for GPS/INS systems |
CN1580812A (zh) * | 2003-08-14 | 2005-02-16 | 三星电子株式会社 | 用于向伪卫星分配伪随机噪声码的系统和方法 |
CN201118603Y (zh) * | 2007-11-16 | 2008-09-17 | 上海伽利略导航有限公司 | 伪卫星基带信号生成器 |
-
2007
- 2007-11-16 CN CN2007101705264A patent/CN101158717B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983160A (en) * | 1997-04-21 | 1999-11-09 | Raytheon Company | Increase jamming immunity by optimizing processing gain for GPS/INS systems |
CN1580812A (zh) * | 2003-08-14 | 2005-02-16 | 三星电子株式会社 | 用于向伪卫星分配伪随机噪声码的系统和方法 |
CN201118603Y (zh) * | 2007-11-16 | 2008-09-17 | 上海伽利略导航有限公司 | 伪卫星基带信号生成器 |
Non-Patent Citations (2)
Title |
---|
隋艺.北斗卫星和伪卫星组合定位系统研究.中国优秀博硕士学位论文全文数据库(硕士)信息科技辑 3.2004,(3),全文. |
隋艺.北斗卫星和伪卫星组合定位系统研究.中国优秀博硕士学位论文全文数据库(硕士)信息科技辑 3.2004,(3),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN101158717A (zh) | 2008-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866452B (zh) | 基于fpga和tl16c554a的多串口扩展方法 | |
CN102841362A (zh) | 三模卫星信号模拟方法及模拟器 | |
CN202929519U (zh) | 一种多通道相位可调的信号发生器 | |
CN101158717B (zh) | 伪卫星基带信号生成器的嵌入式处理器的控制方法 | |
CN102519488A (zh) | 多源航空导航信号综合数据采集及处理系统 | |
CN103559152A (zh) | 基于pcie协议的cpu访问本地总线的装置及方法 | |
CN102904550A (zh) | 基于ad9959的多通道同步波形发生器 | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
CN111898328B (zh) | 一种基于FPGA的SoC原型验证系统 | |
CN102495552A (zh) | 面向星载电子系统的实时仿真系统 | |
CN110673510B (zh) | 一种基于cpu+fpga的罗兰-c导航信号模拟平台 | |
CN105045635B (zh) | 配置表文件的生成方法 | |
CN104102690A (zh) | 一种基于存储结构的遥测数据处理方法 | |
CN104898135A (zh) | 基于fpga的卫星导航信号模拟方法和模拟系统 | |
CN103942092A (zh) | 一种支持LabView图形化编程的HLA协同仿真方法 | |
CN201118603Y (zh) | 伪卫星基带信号生成器 | |
CN209103281U (zh) | 基于pci接口的集成多总线接口模块 | |
CN205050133U (zh) | 嵌入式系统中的时统系统 | |
CN106708764A (zh) | 一种机载航电系统通用io处理系统 | |
Guo et al. | A SPI interface module verification method based on UVM | |
CN104615815B (zh) | 一种并行模型的消息传输方法及系统 | |
CN112053615A (zh) | 一种嵌入式实验教学系统、教学方法 | |
CN202975317U (zh) | 重构fpga雷达数字信号处理组件 | |
CN109637312A (zh) | 一种片上数字电子技术实验系统 | |
CN111736655B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110126 Termination date: 20171116 |