Presentation on theme: "OS Implementation On SOPC Final Presentation"— Presentation transcript:
1 OS Implementation On SOPC Final Presentation Performed by:Ariel MoraliNadav MalkiSupervised by:Ina Rivkin
2 Project GoalsAssemble a SOPC system, using Nios II processor on Altera’s DE2 board, based on Cyclone II FPGA.Implement Micrium’s µC OS-II.Build a system that includes VGA, Keyboard and Ethernet , demonstratingµC OS-II abilities.
4 The System The SOPC includes: Nios II Processor Internal and external memory (onchip & sdram)PS/2 KeyboardVGAUARTPLLPIOs (Seven-Segments & LEDs)
5 Micrium’s µC OS-II Mainly for embedded systems Main features: Scalable (5-24KB)Real timePre-emptive multitaskingPriority basedLimited (but big enough) number of tasksSupply OS services:Semaphores and mutexesMessage mailboxes and queuesTimer and memory management
6 Micrium’s µC OS-II µC OS supports multi-tasking. Each task is defined with the OSTaskCreateExt command.The arguments for this command are the task’s priority, pointers to the task’s function & stack, etc.After defining the tasks, the OS is initiated with the OSStart command, which has no arguments.The µC OS uses static priority in it’s scheduling. The available task with the highest priority always runs.In our software, we are using also the OSTimeDlyHMSM command.This command pauses a task for a defined period of time, allowing the other tasks to run.
7 The Software The software includes: Micrium’s µC OS-II System LibrariesKeyboard DriverVGA DriverCode that demonstrates µC capabilities:The code has two tasks running in parallel on the screen. Task #1: Gets input from the KB and prints it inside a window on the screen.Task #2: Prints a snake that moves randomly inside another window.
12 Keyboard Serial access through the PS/2 Connector Each time a key is pressed or released, data and control bits are transferred from the KB to the controller.An interrupt is sent to the processor in order to handle the information immediately.The controller saves up to 256 entries in a FIFO queue.Device drivers control and communicate with the PS/2 Core through two 32-bit registers. Communication with the PS/2 peripheral is done by writing or reading the registers through the Avalon Slave Port.
13 VGAThe VGA core simplify the use of the VGA digital-to-analog converter (DAC) on the Altera DE2 board.The VGA Controller generates the timing signals required for the VGA DAC. It produces screen resolutions of 640x480 pixels for the DAC.The VGA DAC requires a 25MHz clock, supplied via the VGA_CLK pin.The VGA has two working modes – Pixel and Character modes.
14 Character BufferThe Character Buffer handles the conversion of characters to pixels, and sends them to the VGA Core.Each character occupies an 8x8 VGA pixel group.Therefore, resolution of 640x480 gives 80x60 characters.Each character location on the screen is identiﬁed by an x,y coordinate.
15 Other PeripheralsSDRAM - Dynamic 8MB RAM, located on the DE2 board. Requires a 50MHz clock, shifted relatively to the CPU’s clock.PLL – receives a 50MHz clock, and generates the shifted clock for the SDRAM, and the 25MHz clock for the VGA DAC.
16 EthernetOur original plan was to use the Ethernet in order to implement a web server.The DE2 board has a Davicom DM9000A Ethernet controller.In order to use TCP/IP protocol we planed to use the Nichestack TCP/IP stack.We learned that the DM9000A is not supported by the Nichestack.
17 Ethernet Efforts invested in order to use TCP/IP on the de2 board: Successful implementation of Ethernet without TCP/IP(Sending and receiving raw packets)Study of the TCP/IP protocolLearn how to use and implement the Nichestack and its functionsUnsuccessful Attempts to run Nichestack on the DE2 board- we found a group who wrote a special driver for the dm9000, which supposes to work with nichestack.after several attempts to use this driver, we came to the conclusion that it can’t be done in a reasonable amount of time.
18 Main DifficultiesThe µC didn’t work with the basic (economical) Nios II Processor. We had to use the more advanced processor.The on-chip memory was not sufficient for our software. We added the SDRAM memory.We learned that the SDRAM requires a shifted clock. We used the PLL to provide this clock.A lot of time and effort was invested in the attempt to implement TCP/IP on the DE2 board.
19 Planning for Project BUse of PCIE board that includes an ethernet controller supported by nichestack.Implementation of a web server using nichestack.The server will be managed and configured using Telnet protocol.InternetHTTPTelnet