Hi- Just bought an 09 prius in Feb. Interested in how the computer ( or computers?) hold up. Any problems in this area so far? Thanks...Mike
Mostly fine. The early MFDs had some trouble with a connector, but that has been resolved. As for ECUs, they are very reliable. Like any other component, there have been some failures, but not many. Tom
The Prius ECUs are 32-bits. Most of the cars during the launch 2004, were using 16-bits. I don't know about now. This got me wonder if the ECU in the 2010 Prius is faster or operate at 64-bits.
'Bitness' has two aspects in computing systems. One is the number of memory locations that can be addressed. 32 bits is 4GB, way, way over anything required for ECUs. The other is the size of operands and results. Here, 16 bits only gives you a range of 0 to 65,535 or -32,768 to +32,767, whereas 32 bits gives 0 to 4 billion or -2 billion to +2 billion. 16 bits is a touch limiting, 32 is normally plenty for almost any operations. (Many 16-bit systems had ways to use two registers for 32-bit operations, but this was generally slower than fully 32-bit processors.) In binary floating point, 32 bits is enough for about 6 decimal digits of precision and exponents between -38 and +38. Floating point is a costly operation, without dedicated hardware, and generally embedded programmers try to avoid it. If fractional values are required, we usually use scaled integers. That is, the numbers are treated as if divided by some fixed quantity, like counting pennies rather than pounds/dollars. In my programming - I'm a line-of-business programmer of mobile devices - I very rarely use 64-bit numbers. Generally only when dealing with Windows time values, which are given to ridiculous precision (100ns intervals since 1 January 1601). If they are required, the compiler generates calls to built-in functions that implement 64-bit arithmetic using the 32-bit registers. It's a lot cheaper in terms of hardware budget than a full 64-bit arithmetic and logic unit and 64-bit registers. There's not even much benefit for most Windows programs in porting to 64-bit. 32-bit programs run fine. I'm using one right now (IE8 on Windows Vista). Only if the program does a lot of 64-bit calculation, or can make use of more than 2GB of memory, is it worth doing. The Airbag Control Module teardown mentions an HD6432695 microcontroller, which is kind of a hybrid 16/32-bit processor. The H8 family started off as a 16-bit processor but has gained 'extended' registers that can be used either as 32-bit registers or as two 16-bit registers. Addressing changed from 16-bit to 24-bit (up to 16MB). However, not all operations are available on 32-bit registers. Going back to the original topic, the Prius doesn't really have different kinds of computers to other cars. It just has more of them. Many other cars have drive-by-wire throttle or electronic brake-force distribution on dual-circuit braking systems.
In simple term (without getting into caching and registers), there are two ways to increase the processing -- increase the clock cycle or the bits. A 32-bit processor can process 32 binary digits per clock cycle whereas 16-bit processor does half. Bits are like gas engine cylinders where 8 cylinders can burn twice as much gas as 4 cylinders. Clock cycles are like RPM, the faster it is the more work/power is created. Faster ECUs in car improve responsiveness. This means it will steer better, PSD can be controlled in much higher precision, regen brake response better, etc... We need to know these kind of improvements as well in 2010 Prius.
Aren't they programmed to work for exactly 109,000 miles and then cease to function? I thought I read that somewhere. :madgrin:
You're a much better teacher than I am. Just curious, do you have any experience with embedded RTOS's like QNX, Wind River, or secure embedded RTOS's like Green Hills?
I have an 8 bit project that uses 32 bit floating point numbers. I resisted as long as I could, but scaled integers got too messy. I also had to write a heap management system for it, which is a lot of overhead for a processor with only 128KB of program memory and 3936 bytes of RAM. It uses one interrupt for the timer, the rest is a giant state machine - around and around we go. Tom
Tom IBM's first "large" computer project, the vacuum tube SAGE (Semi Automatic Ground Environment) system used NO integers. This is circa late 1950's Every SAGE blockhouse had a literal small army of techs to keep that vacuum tube monster running 24x7. Around 5 MW of onsite diesel generators, 120 tons of chiller capacity to keep all those vacuum tubes "chilled " out, etc. It actually did achieve three nines up. Amazing what a dedicated +140 man team can accomplish, per site. I wish I had been born about two decades earlier, and been in on that project. I just don't get the same sense of job satisfaction looking at teeny components. Do you?
I am old enough to have worked with vacuum tubes a bit. I can tell you with certainty that the B+ voltage for a vacuum tube hurts a lot more than the bias voltage for a transistor. For a long time I felt that using integrated circuits was like cheating. I now see myself as more of a systems engineer, tying together all of the ICs with a few discrete components. It's a different sort of work, but satisfying in its own way. Tom
Oh ho, you're not the only one to have ever done that. A lot of the DEW line components used early 60's vintage components right up to the mid/late 1980's. Some folks talk about a "baptism by fire." My first encounter with those evil, satanic Klystrons, almost did become a literal baptism by fire!
Nah, it's all Windows CE-based mobile computers, most commonly Motorola's MC3000 series and the Windows Mobile MC70. We're barcode specialists. Microsoft do claim RTOS capabilities for Windows CE, but I've never written anything for embedded systems. I still maintain a couple of projects that were originally written for Symbol's Series 3000 DOS-based handhelds, so to a degree I have to keep my hand in with 16-bit software in tight amounts of memory, but even the phone-sized device I've been working with recently has a 312MHz Marvell PXA270 (ARM architecture) processor, with 32MB of RAM. ARM is the best for low power/high performance, but the car probably wouldn't benefit much from cutting down the power requirements of the electronics. 300-400W isn't all that much in the power budget of the car, only 1% of the generator's capability. If there are savings to be made, combining the functions of some of the ECUs - e.g. Hybrid Vehicle ECU and Engine ECU, which are strapped back-to-back in NHW20 - might be a better route.
So has anyone got in there with test gear. Are they assembler / C programmed from the bottom up or are they Linux based. Are there any JTAG ports or serial interfaces, a terminal on a serial port would be interesting.
The Prius uses a "secure" RTOS. As I have an NDA with the company that provides that RTOS that is about as far as I can go Sorry
Mike, That's 0.5hp and since the ICE generates about 20 hp at highway cruise it would account for a 2.5% MPG hit. Low power is worthwhile in a Prius computer. JeffD
I agree, one has to keep in perspective and context, the overall performance requirements vs need for power management As an example, the IBM "Roadrunner" supercomputer recently completed* at LANL at a cost of about $130 million. It has around a 2.5 MW power budget, occupies about 6,000 square feet, and can do petaflop calculations. The primary use of this computer will be for nuclear weapons modeling What's interesting is that IBM expects a new generation of super computer by 2012 - codenamed "Sequoia" - that will exceed 20 petaflops. Among other things, it will have at least 1.6 petabytes of memory, an energy budget of 3,000 calculations per watt, and occupt about 1/2 the space of Roadrunner Naturally, this super computer will be installed at LLNL *source: my April 2009 issue of IBM Systems Magazine
The power budget of the Prius is an interesting question. Oak Ridge Laboratory (During WW II ORNL was a facility for plutonium production, afterwards primarily involved with nuclear medicine, radioisotopes, and energy ORNL took a Prius and essentially reverse-engineered it. They stripped the M/G and inverter/converter to determine frictional losses and energy budget.