| With the development of mobile communication technologies, Software Radio (SDR) is drawing more attentions of many researchers. SDR provides a tool that is able to transplant some complex communication protocols dependent on hardware systems into software enviroments, which simplifies the hardware system design and realizes dynamic reconfiguration. SDR requires the realtime transmission of large quantities of digital signals and timely feedback capabilities between hardware and software enviroments. In order to meet the requirements, a high-speed data transmission channel between hardware and software units is desperately demanded. Taking into account the latest interface standard, PCI-Express (PCIe) is fully capable of undertaking the task of data transmission, and has enough bandwidth margin for future system upgrades. Therefore, based on the previous work that developed Sora hardware platform, this dissertation has achieved a high data transmission channel design on PCIe bus and provided a solution for data storage.Firstly, the dissertation implements the design of high-speed data transmission interfaces based on Xilinx PCIe IP core. The task includes the verification of the accuracy of PCIe link training process and the implementation of the Direct Memory Access (DMA) controller. The verification of link training is necessary for the correctness of the underlying interfaces and the DMA controller is responsible for the packets stream division, packets requests and responses and the control of high-speed data transfer.Secondly, the dissertation implements the development of PCIe device driver under Linux. PCIe device is a char device on Linux platforms. Its driver implementation is similar to that of the char device except for registering the interface functions of the PCIe structure which is embedded in the kernel. The driver maps the physical memory to the device space and provides interfaces for the user to access. In addition to the driver module design in this task, an introduction of MPrace software library is included for it helps complete the system testing at last.Finally, based on the driver interfaces and the related MPrace functions, this dissertation implements a data storage algorithm that executes the reading and writing of a circular buffer concurrently to achieve real-time data storage. In the meantime, lots of field testing work has been completed. According to testing results, this dissertation has provided extensive analysis for the DMA timing logic and verified its correctness. |