- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sora软件部分介绍
姚远;About V3 Technology;Typical Customers;Sora;Sora station ;Sora MIMO;Sora kit;Component;RF;Code;讲述要点;Sora架构;
Sora的整体框图
在sora系统中,AD/DA转换器构成了软硬件的界面。通信系统的模拟部分由硬件完成,数字部分由软件在通用处理器上实现。这包括物理层(基带)处理,MAC层,网络层及其他高层协议。
; Sora系统架构图
硬件部分包括一块无线控制板(RCB),以及一系列可替换射频前端模块。RCB为射频前端模块和个人PC之间提供了一个基于PCIe总线标准的接口,可支持高速的数字信号采样。同时RCB上包含了一个存储器,用以缓存预先计算好的数据波形,这一功能可以显著的降低延时。;Sora软件架构图
;
Sora给开发者预留了两套编程所需接口
内核态的核心应用程序接口(Core API)
用户态的用户扩展接口(UMX API)。
程序员可以通过UMX接口在用户态就可以直接访问各种软件无线电资源,UMX API是通过一个内核态驱动程序HWTest来实现的。
;UMX编程;UMX编程流图及对应函数;
下面总结UMX编程框架及函数调用形式:
初始化UMX库;
具体函数:SoraUInitUserExtension(“\\\\.\\HWTest”);
初始化一个ARO;
具体函数:SoraURadioStart(TARGET_RADIO);
为抽象无线电对象分配接收信道;
具体函数:SoraURadioMapRxSampleBuf(TARGET_RADIO,RX_Buffer,RX_BufferSize);
返回:接收信道的DMA缓存地址(RX_Buffer)和环形缓存区大小(RX_BufferSize)。
从接收信道分配一个接收流;
具体函数:SoraURadioAllocRXStream(RxStream,TARGET_RADIO,(PUCHAR)RxBuffer,RxBufferSize);
作用:获得一个SORA_RADIO_RX_STREAM接收流对象,通过这个接收流访问接收到的样本数据。
;配置合适的无线接收机参数;
具体函数:ConfigureRadio();
可配置参数包括:载波频率,频偏校正,发送增益,接收机第一级放大器增益,接收机第二级放大器增益。特别的,现有的Sora射频硬件没有自动增益控制功能。
为发射信道分配一个转存数据缓存区;
具体函数:SoraUAllocBuffer(TxSampleBufferSize);
作用: 这个缓存区将在sora信号发送过程??使用。
在转存缓存区里填写调制好的数字信号样本;
具体函数:process(); 自己的处理流图
将数字样本块转存到RCB存储器上;
具体函数:SoraURadioTransferEx(TARGET_RADIO,TxSampleBuf,TxSampleBufSize,TxID);
指示RCB存储器发送已经转存好的信号样本块;
具体函数:SoraURadioTx(TARGET_RADIO,TxID);
在程序终止前去初始化(de-initialize)UMX库。
具体函数:SoraUCleanUserExtension();; 一个UMX程序框架示例
// 首先,初始化UMX库,然后调用主处理函数。处理完成后清除UMX库。
int _cdecl main(int argc,const char *argv[])
{
// Initialize UMX API
if(SoraUInitUserExtension(\\\\.\\HWTest)){
printf(Error:fail to find the hwtest driver!\n);
return -1;
}
// Start the main procedure
umx_main();
// Clean UMX extension
SoraUCleanUserExtension();
return 0;
};// umx_main函数中内容
// 首先,创建一个ARO,然后将ARO的接收通道映射到用户态。
PVOID RxBuffer = NULL ;
ULONG RxBufferSize = 0 ;
SORA_RADIO_RX_STREAM RXStream ;
PVOID TxS
文档评论(0)