This is a a massive update, hold on to your hats here we go!
The system consists of 3 components
- The Nav box itself
- An Interface box where the Displays and Switches are connected
- An LRU/FRU (Line or Field Repairable Unit
Communications is over a CAN Link with CANaerospace Protocol, which is a BIG-Indian where the Arduino and other hardware is Little, So the Arduino in the LRU function has to swap stuff around. There is also the Interface box, where most of the components live.
There is the NAV Terminal itself, it is connected to the Interface box by 50 pin (4) IDC Connectors. Both the Interface box and the LRU have Arduino Mega the one in the LRU only talks to the CAN Network. (they may end up both in the LRU.) CANaerospace interface uses two DB-9 female connectors. One goes in, the other out. Between the two connectors there is a LED and a toggle switch.
when the switch is ON the LED will be lit and the CAN Terminating Resistor is now across CAN-High and CA
| PIN | STD | OURS |
| 1 | +28v | +5v |
| 2 | CAN-Low | |
| 3 | CAN-GND | |
| 4 | RS232-Tx | USB-High |
| 5 | P-GROUND | |
| 6 | RS232-Rx | USB-Low |
| 7 | CAN-High | |
| 8 | Shield | |
| 9 | RS232-GND | <USB-GND/td> |
There is a special cable which just has a USB-A connector which is plugged into the DB-9 that has the USB label the connector.
DESIGN: here are the functions of the system
- LRUs:[a] main function is to look for any CAN messages, with our address, when it sees one it sets an interrupt.
.
- INTERFACE BOX:[a] when it receives a message it sends data to the correct display by SPI bus.The heavy lifting is done with MCP23S17s, one per 16 segment display and two per 7-segment display, as well as 2 or 3 7segment BCD Decoders drivers. and 5 discrete(s) to handle the colons and 2 LEDs <br>Switches:[b]
Keyboard:[c] I took the easy way out I have a PS2 keyboard Encoder. Very little overhead.
NAV BOX
[a]
Has 4 switches
[b] Has a Keyboard] [c] Displays
[d] Control for the Display Dimmer [e] 2 Discrete LED
Note: Since I am using SPI I can Have two busespstyle="font-family: verdana, geneva; font-size: 17px:">Note: when I say 2 level interrupts this is what happens :
- ISR (interrupt Service Routine). It reads a 8 bit Tri-Sate Path, with 1 nibble for what is generating the ISR, and the second nibble contains the DATA. thankfully these are only 4 bits, of data and 4 bits on control. Think of this as a In-&-Out that what a burger its all about!
- IF I really wanted to validate the 8 bits, store the first read a second time then compare the two if they match away we go..
- So the first CPU handles the interface between NAV and the flight Model. I might have an Ethernet Connection sending out NAV info. There are other devices that need that data, such as a Radio as if you are at JFK and call the tower It would never work, as the signal is only good for line of sight. so at the the beach you might get 20 odd miles, but now at 40,000' thats about 250miles!! So when you are bopping along and want to check your ground speed, you call the Tower. He or She answers the same way to everybody! He always says you are going about x miles/hr over the ground... So any point on Earth the LOS, line of sight, the If you wanted to do the math
Distance (NM) = 1.23 x (sqrt(h1) + (sgrt(h2)) but then you have to convert to miles..
here it is in C;
/*Nautical Miles*/NM = 1.23 x ( sqrt(h1) + sqrt(h2));