Soft real-time: Automatic Chocolate Vending machine using μCOS II RTOS-Requirements study, Specification study using UML, Hardware architecture, Software architecture
1. ACVM Specifications:
Alphanumeric keypad and Display.
Alphanumeric keypad on the top of the machine.
A child interaction with it when buying a chocolate.
Owner commands and interaction with the machine.
Three line LCD display unit on the top of the machine.
Displays menus, entered text, pictograms, and welcome, thank and other messages, and time and date.
Child as well as the ACVM owner GUIs with the machine using keypad and display.
Coin insertion and delivery slots, and Internet port.
Coin insertion slot so that the child can insert the coins to buy a chocolate.
Delivery slot to collect the chocolate, and coins if refunded.
Internet connection port so that owner can interact with ACVM from remote.
Reprogram of the codes and relocation of the codes
The system ROM or flash or EPROM whenever the following happens:
(i) the price of chocolate increases,
(ii) the message lines or menus or advertisement graphics needs to be changed or
(iii) machine features change.
An RTOS has to schedule the buying tasks from start to finish.
Let µC/OS-II be the RTOS used in ACVM.
- To sell chocolate through an ACVM from which children can automatically purchase the chocolates.
- The payment is by inserting the coins of appropriate amount into a coin-slot.
- Coins of different denominations through a coin slot.
- User commands.
Signals, Events and Notifications:
- A mechanical system directs each coin to its appropriate port− Port_1, Port_2 or Port_5.
- Each port generates an interrupt on receiving the coin at input.
- Each port interrupt starts an ISR, which increase value of amount collected by 1 or 2 or 5 and posts an IPC to a waiting task the system.
- Each selected menu choice gives a notification to the system.
- Chocolate and signal (IPC) to the system that subtracts the cost from the value of amount collected.
- Display of the menus for GUIs, time and date, advertisements, welcome and thank messages.
Functions of the system:
- A child sends commands to the system using a GUI (graphic user interface).
- GUI consists of the LCD display and keypad units.
- The child inserts the coins for cost of chocolate and the machine delivers the chocolate.
- If the coins are not inserted as per the cost of chocolate in reasonable times then all coins are refunded.
- If the coins are inserted of amount more than the cost of chocolate, the excess amount is refunded along with chocolate.
- The coins for the chocolates purchased collect inside the machine in a collector channel, so that owner can get the money, again through appropriate commands using the GUI.
- USB wireless modem enables communication through Internet to the ACVM owner.
Power Dissipation: As required by mechanical units, display units and computer system
Performance: One chocolate in two minutes and 256 chocolates before next filling of chocolates into the machine.[Assumed]
Process Deadlines: Machine waits for maximum 30 s for the coins and machine should deliver the chocolate within 60 s.
User Interfaces: Graphic at LCD or touch screen display on LCD and commands by children or machine owner through fingers on keypad or touch screen
Engineering Cost: US$ 50000 (assumed) - ***Manufacturing Cost:*** US$ 1000 (assumed)
Test and validation conditions:
- All user commands must function correctly.
- All graphic displays and menus should appear as per the program..
- Each task should be tested with test inputs.
- Tested for 60 users per hour.
Specifications Modeling Using UML:
Classes Display_Output and User_Keypad_Input and Objects task_Display and taskUser_Keypad Input
ACVM specific hardware to sort the coins of different denomination and each denomination.
Main Power supply 220 V 50 Hz or 110 V 60 Hz. Internal circuits drive by supply of 5 V 50mA for electronic and 12 V 2 A for mechanical systems.
A TCP/IP port.
A 1 s resolution timer is obtained by programming 8051 timer.
Flash memory part of ROM and RAM for storing temporary variables and stack.
8 MB ROM for application codes and RTOS codes.
Multiple tasks and their synchronization model:
Tasks and their priority, action and IPCs:
- Priority ─ 9.
- Action─ Waits for the coins and action as per coins collected.
- IPC pending: Event signal (s) from Port_1, Port_2 and Port_5;SemStimeout,
- IPC posted: *MboxAmount.
- Priority ─ 11.
- Action─ Waits for coins = or > cost till timeout and act accordingly.
- IPC pending: SemFlag1;*MboxAmount.
- IPC posted: SemFlag2, SemFlag3,*MboxAmount, *Str1.
- Priority ─ 12.
- Action─ Waits for SemFlag2, delivers chocolate, and decreases coins’ amount after delivery.
- IPC pending: SemFlag2.
- IPC posted: SemFlag2, *Str2.
- Priority ─ 17.
- Action─ Waits for refund event and refunds the amount.
- IPC pending: SemFlag3.
- IPC posted: *Str3.
- Priority ─ 13.
- Action─ Refunds the Excess excess amount
- IPC pending: SemFlag2,*MboxAmount.
- IPC posted: *Str4.
- Priority ─ 15.
- Action─ Waits for the message mails and display as per message.
- IPC pending: collect, *delivered,refund, *excessRefund, Str2, Str3, Str4 and *TimeDate.
- IPC posted.