I am working on an iPhone app where we are trying to calculate the acceleration of a moving car. Similar apps have accomplished this (Dynolicious), but the difference is tha
This doesn't solve your problem completely, but hopefully it clears up what you've been trying to do. I do believe that ultimately you will need some other instrument to be able to fully do this. GPS as tom10 suggested sounds like the best option to me (since there isn't a gyro available), but I foresee problems with that such as lag time and inaccuracy in the GPS coordinates (I don't know how accurate the iPhone GPS is).
First, I assume that the iPhone is firmly attached to the car throughout. For a slope that is up or down with no curve left or right, you can do the following for calibration.
v5 points in the direction that gravity will point when the car is on a perfectly flat surface. You can now at least tell if you are on a slope of some sort and what the angle is of that slope. This can be done in the following manner:
However, this is where we run into problems. Even if we limit ourselves to slopes that are up and down rather than curving/banking left or right, we still can't tell for sure if the slope is going down or up - just the angle of it. We can find initially if the car is going up or down a slope by taking the dot product of v1 and v3 (a positive value indicates a downward slope, and a negative value an upward slope).
You might however be able to use the fact of whether the magnitude of the total acceleration vector is decreasing or increasing as the slope increases or decreases to make a guess at this, but it won't be for sure. For instance, if the angle (theta) of the slope has been 0 degrees (or close enough to it) and now it isn't, and the projection (dot product) of the overall acceleration onto the unit vector of v3 is decreasing, then we might infer that the car is going up a slope. Again, this would just be a guess which could very well be wrong. I say could, but what I mean is that it will be wrong sometimes.
That's about as much information as I can envision getting out of a system that just uses the accelerometer. Good luck!